Benutzername und Kennwort

  • Hey Leute,
    mal eine Frage.
    Ich habe ein Skript.
    Ich möchte vor die Ausführung des Skriptes eine Anmeldung setzten.
    Das heißt, das Skript darf es ausgeführt werden, wenn Benutzername und Kennwort Stimmen.
    Ist dies zu realisieren??
    Und mit Benutzer und Kennwort.
    Ist es mögleich mit AutoIt die Datei zu verschlüsseln, dass nur AutoIt die Namen und Kennwörter auslesen können??
    Ich dachte an eine TXT

    Jasmin = apfel

    Benutzer = Jasmin
    Passwort = apfel

    Kann man AutoIt beibringen diese Strings zu trennen und A (Jasmin) zu B (apfel) zuzuordnen?

    Viele Fragen..
    Tut mir Leid^^


    Mfg
    Benne

  • Ich würd das etwa so machen:
    Erste Datei ausführen, Anweisungen folgen:

    [autoit]

    #include <String.au3>
    clipput(_StringEncrypt(1,Inputbox("Benutzername",""),"fds7ad"))
    Msgbox(64,"Userhash","Jetzt in der zweiten Datei crypt1 markieren, und dann Strg+V drücken")
    clipput(_StringEncrypt(1,Inputbox("Passwort",""),"fds7ad"))
    Msgbox(64,"Userhash","Jetzt in der zweiten Datei crypt2 markieren, und dann Strg+V drücken")

    [/autoit]


    Jeweils nach Anweisung in dieser Datei ersetzen:

    [autoit]


    #include <String.au3>
    If _StringEncrypt(1,Inputbox("Benutzername",""),"fds7ad") <> "crypt1" OR _StringEncrypt(1,Inputbox("Passwort",""),"fds7ad") <> "crypt2" Then Exit
    ;Rest des Scriptes

    [/autoit]


    Das musst du noch als .EXE compilieren, damit niemand den Quelltext ändern kann.
    Dann sollte es recht sicher sein. :rock:

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Ahh
    Das ist schonmal sehr schön ;)

    Gibt es eine Möglichkeit eine Liste zu machen?

    (Die Nutzer sind ca. 30 Leute)

    Nur um umerlaubtes weitergeben zu vermeiden, möchte ich den Kennwort Schutz einbauen ;)

    • Offizieller Beitrag

    Hab das Beispiel mal angepasst:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GuiComboBoxEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ; Anfang Beispiel
    Global $aCorrect[5][2] = [['abcd', '123'],['efgh', '456'],['ijkl', '789'],['mnop', '012'],['qrst', '345']] ; Array mit den korrekten Daten

    [/autoit] [autoit][/autoit] [autoit]

    ; Mögliche Werte für die Sprache: 'Dansk|Deutsch|English|Français'
    Global $aInput = _LogInBox('Test', 3, 'Deutsch', False); Fenstertitel = "Test", Passwort = min. 3 Zeichen, Sprache = Deutsch

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then Exit
    $iLoginID = -1
    For $i = 0 To UBound($aCorrect) - 1
    If $aInput[0] == $aCorrect[$i][0] And $aInput[1] == $aCorrect[$i][1] Then ; "==" Groß-/Kleinschreibung beachten!
    MsgBox(0, 'Test', 'Benutzername und Passwort sind richtig!')
    $iLoginID = $i
    ExitLoop
    EndIf
    Next
    If $iLoginID = -1 Then Exit MsgBox(0, 'Test', 'Benutzername und/oder Passwort falsch!')
    MsgBox(0, 'Test', 'Benutzer "' & $aCorrect[$iLoginID][0] & '" hat sich angemeldet!')
    ; Ende Beispiel

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    ======================================================================================================================
    Function Name: _LogInBox($sTitle [, $iMinLen [,$sStartLang [, $bPassVisible=True [, $iXPos=-1 [, $iYPos=-1]]]]])
    Description: Eingabefenster für Benutzername und Passwort
    Parameter(s): $sTitle = Fenstertitel
    optional: $iMinLen = Mindestlänge des Passworts (Standard = keine Mindestlänge)
    optional: $sStartLang = die Sprache auswählen (Standard = Deutsch)
    optional: $bPassVisible = True/False = Passwort sichtbar anzeigen Ja/Nein (Standard = Ja)
    optional: $iXPos = Horizontale Position des Fensters (Standard = zentriert)
    optional: $iYPos = Vertikale Position des Fensters (Standard = zentriert)
    Return Value(s): Array mit 2 Elementen (Benutzername und Passwort)
    Bei "Abbrechen" oder "Schließen" wird @error = 1
    Required: #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiComboBoxEx.au3>
    #include <GuiImageList.au3>
    #include <WindowsConstants.au3>
    Author(s): Oscar (http://www.autoit.de)
    ======================================================================================================================
    #ce
    Func _LogInBox($sTitle, $iMinLen = 0, $sStartLang = 'Deutsch', $bPassVisible = True, $iXPos = -1, $iYPos = -1)
    If $iMinLen < 0 Or $iMinLen = Default Then $iMinLen = 0
    If $sStartLang = -1 Or $sStartLang = Default Then $sStartLang = 'Deutsch'
    If $bPassVisible = -1 Or $bPassVisible = 'Default' Then $bPassVisible = True
    If $iXPos < 0 Or $iXPos = Default Or $iXPos > @DesktopWidth Then $iXPos = -1
    If $iYPos < 0 Or $iYPos = Default Or $iXPos > @DesktopHeight Then $iYPos = -1
    Local $hGui, $hUserLabel, $hUser, $hPass, $hCheck, $hLanguage, $hCancel, $hOk
    Local $iOpt, $sStyle, $sTmp, $aLanguage, $iLanguage, $hImage
    Local $iErr, $sFont = 'Arial', $aOut[2]
    Local $iBGColorInner = 0xBBBBBB, $iBGColorOuter = 0xEEEEEE
    Local $sIconsPath = @ScriptDir & '\icons.icl'
    Local $sLang = 'Dansk|Deutsch|English|Français'
    Local $aTranslation[4][7] = [ _
    ['Brugernavn:' & @CRLF & '(påkrævet)', _ ; Dänisch
    'Password:', _
    @CRLF & '(mindst ' & $iMinLen & ' tegn)', _
    '&Password synlige', _
    'Abonner...', _
    'Annuller', ''], _
    ['Benutzername:' & @CRLF & '(erforderlich)', _ ; Deutsch
    'Passwort:', _
    @CRLF & '(min. ' & $iMinLen & ' Zeichen)', _
    '&Passwort sichtbar', _
    'Anmelden...', _
    'Abbrechen', ''], _
    ['Username:' & @CRLF & '(needed)', _ ; Englisch
    'Password:', _
    @CRLF & '(min. ' & $iMinLen & ' Chars)', _
    '&Password visible', _
    'Log in...', _
    'Cancel', ''], _
    ['Nom:' & @CRLF & '(nécessaire)', _ ; Französisch
    'mot de passe:', _
    @CRLF & '(min. ' & $iMinLen & ' lettre)', _
    '&mot de passe visible', _
    'déclarer...', _
    'Annuler', '']]
    $aLanguage = StringSplit($sLang, '|')
    For $i = 1 To $aLanguage[0]
    If $sStartLang = $aLanguage[$i] Then $iLanguage = $i - 1
    Next
    $iOpt = Opt('GUIOnEventMode', 0)
    $hGui = GUICreate($sTitle, 343, 200, $iXPos, $iYPos, BitOR($WS_SYSMENU, $WS_VISIBLE))
    GUISetIcon(@SystemDir & '\shell32.dll', -212)
    GUISetBkColor($iBGColorOuter)
    GUICtrlCreateLabel('', 5, 5, 325, 120, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hUserLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][0], 12, 17, 90, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hUser = GUICtrlCreateInput('', 115, 20, 205, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $sFont)
    If $iMinLen > 0 Then
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
    Else
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
    EndIf
    $hPassLabel = GUICtrlCreateLabel($aTranslation[$iLanguage][6], 12, 63 + ($iMinLen = 0) * 6, 100, 35)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    $hPass = GUICtrlCreateInput('', 115, 65, 205, 25)
    GUICtrlSetFont(-1, 10, 400, 0, $sFont)
    GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck = GUICtrlCreateCheckbox($aTranslation[$iLanguage][3], 120, 92, 200, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetBkColor(-1, $iBGColorInner)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $hLanguage = _GUICtrlComboBoxEx_Create($hGui, '', 10, 135, 110, 140, $CBS_DROPDOWNLIST)
    If FileExists($sIconsPath) Then
    $hImage = _GUIImageList_Create(32, 20, 5, 4, 4)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 0, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 1, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 2, True)
    _GUIImageList_AddIcon($hImage, $sIconsPath, 3, True)
    _GUICtrlComboBoxEx_SetImageList($hLanguage, $hImage)
    EndIf
    _GUICtrlComboBoxEx_SetItemHeight($hLanguage, 0, 25)
    For $i = 1 To $aLanguage[0]
    _GUICtrlComboBoxEx_AddString($hLanguage, $aLanguage[$i], $i-1, $i-1)
    Next
    _GUICtrlComboBoxEx_SetCurSel($hLanguage, $iLanguage)
    $hCancel = GUICtrlCreateButton($aTranslation[$iLanguage][5], 250, 135, 80, 25)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    $hOk = GUICtrlCreateButton($aTranslation[$iLanguage][4], 160, 135, 80, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetFont(-1, 9, 400, 0, $sFont)
    GUICtrlSetState(-1, $GUI_DISABLE)
    WinSetOnTop($hGui, '', 1)
    GUICtrlSetState($hUser, $GUI_FOCUS)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $hCancel
    $iErr = 1
    ExitLoop
    Case $hCheck
    GUICtrlSendMsg($hPass, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($hPass, $GUI_FOCUS)
    Case $hOk
    $aOut[0] = GUICtrlRead($hUser)
    $aOut[1] = GUICtrlRead($hPass)
    ExitLoop
    EndSwitch
    If Not _GUICtrlComboBoxEx_GetDroppedState($hLanguage) Then
    If _GUICtrlComboBoxEx_GetCurSel($hLanguage) <> $iLanguage Then
    $iLanguage = _GUICtrlComboBoxEx_GetCurSel($hLanguage)
    If $iMinLen > 0 Then
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1] & $aTranslation[$iLanguage][2]
    Else
    $aTranslation[$iLanguage][6] = $aTranslation[$iLanguage][1]
    EndIf
    GUICtrlSetData($hUserLabel, $aTranslation[$iLanguage][0])
    GUICtrlSetData($hPassLabel, $aTranslation[$iLanguage][6])
    GUICtrlSetData($hCheck, $aTranslation[$iLanguage][3])
    GUICtrlSetData($hCancel, $aTranslation[$iLanguage][5])
    GUICtrlSetData($hOk, $aTranslation[$iLanguage][4])
    GUICtrlSetState($hUser, $GUI_FOCUS)
    EndIf
    EndIf
    If GUICtrlRead($hUser) <> '' And StringLen(GUICtrlRead($hPass)) >= $iMinLen Then
    If BitAND(GUICtrlGetState($hOk), $GUI_DISABLE) Then GUICtrlSetState($hOk, $GUI_ENABLE)
    Else
    If BitAND(GUICtrlGetState($hOk), $GUI_ENABLE) Then GUICtrlSetState($hOk, $GUI_DISABLE)
    EndIf
    WEnd
    Opt('GUIOnEventMode', $iOpt)
    GUIDelete($hGui)
    Return SetError($iErr, 0, $aOut)
    EndFunc ;==>_LogInBox

    [/autoit]
  • [autoit]

    ;
    Anfang Beispiel
    Global $aCorrect[5][2] = [['abcd', '123'],['efgh', '456'],['ijkl', '789'],['mnop', '012'],['qrst', '345']] ; Array mit den korrekten Daten

    [/autoit]


    Das ist schonmal Klasse ;)

    Ich werde es testen ob ich es für mein Skript nutzen kann.


    Und was ich eben noch nicht so ganz verstanden habe:
    Wie bind ich das vor meinen Skript rein.
    Das ich das Original Skript nur Nutzen kann, wenn Kennwort Eingabe erfüllt ist.

    Mfg
    Benne