Moin,
hab für's Zuhause ein kleines Tool programmiert um meine "unwichtigen" Passwörter zu speichern.
Ich weiß das AutoIT sich da nicht so gut dafür eignet aber zumindest wird das PW nicht im Script zu finden sein und in der INI Datei wird auch alles verschlüsselt.
Das Master "PW" wird mit SHA1 verschlüsselt. Die Passwörter selbst mit AES256Bit.Über mein Script Chaos bin ich informiert.
Schon mal danke für Feedback ob gut oder böse.
#include <GUIConstantsEx.au3>
#include <Crypt.au3>
#include <Array.au3>
#include <ListboxConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
Opt("GUIOnEventMode",1)
;VARIABLEN
Global $data = @ScriptDir&"\Daten.pwd"
Global $config = IniRead($data,"Config","1","-1")
Global $pwwrong = 0
;GUI'S
$sForm1 = GUICreate("Master Passwort erstellen:", 260, 90, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
$sInput1 = GUICtrlCreateInput("", 8, 8, 244, 21,$ES_PASSWORD)
GUICtrlSendMsg(-1, 0x1501, 0, "Master Passwort")
$sInput2 = GUICtrlCreateInput("", 8, 32, 244, 21,$ES_PASSWORD)
GUICtrlSendMsg(-1, 0x1501, 0, "Wiederholen")
$sButton1 = GUICtrlCreateButton("PW Erstellen", 8, 56, 244, 25)
GUICtrlSetOnEvent($sButton1,"_MasterKey")
GUISetState(@SW_HIDE,$sForm1)
;-----------------------------
$Form1 = GUICreate("Bobek's Passwort Tresor", 393, 220, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
$List1 = GUICtrlCreateList("", 8, 8, 185, 211,$LBS_SORT )
$Button1 = GUICtrlCreateButton("Zeige Benutzername und PW", 208, 45,180, 25)
GUICtrlSetOnEvent($Button1,"_restore")
$Input1 = GUICtrlCreateInput("", 208, 112, 179, 21)
GUICtrlSendMsg(-1, 0x1501, 0, "Titel")
$Input2 = GUICtrlCreateInput("", 208, 144, 179, 21)
GUICtrlSendMsg(-1, 0x1501, 0, "Benutzername")
$Input3 = GUICtrlCreateInput("", 208, 165, 179, 21)
GUICtrlSendMsg(-1, 0x1501, 0, "Passwort")
$Button2 = GUICtrlCreateButton("Verschlüsseln und Erzeugen", 208, 190, 179, 25)
GUICtrlSetOnEvent($Button2,"_save")
GUISetState(@SW_HIDE,$Form1)
;Erster Start
If $config = "-1" Then
_MasterKeyErzeugen()
Else
_PWEingabe()
EndIf
Func _PWEingabe()
Global $hMInput = InputBox("Bobek's Passwort Tresor","Bitte Passwort eingeben:","","*")
If @error Then
Exit
EndIf
$hashMInput = _Crypt_HashData($hMInput,$CALG_SHA1)
If $config = $hashMInput Then
_Main()
Else
MsgBox(0,"Fehler","Passwort stimmt nicht")
$pwwrong = $pwwrong + 1
If $pwwrong = 3 Then
MsgBox(0,"Fehler","Sie haben das Passwort 3-mal falsch eingegeben.Das Programm wird beendet.")
Exit
Else
_PWEingabe()
EndIf
EndIf
Endfunc
Func _Main()
GUISetState(@SW_SHOW,$Form1)
Global $read_data = IniReadSectionNames($data)
For $i = 1 to UBound($read_data) -1
If $read_data[$i] = "config" Then
ContinueLoop
EndIf
GUICtrlSetData($List1,$read_data[$i])
Next
EndFunc
;Hauptschleife
While 1
Sleep(10)
WEnd
;Funktionen
[/autoit][autoit][/autoit][autoit]Func _MasterKeyErzeugen()
GUISetState(@SW_SHOW,$sForm1)
EndFunc
Func _save()
$titel = GUICtrlRead($Input1)
$username = GUICtrlRead($Input2)
$passwort = GUICtrlRead($Input3)
If $titel = "" Or $username = "" Or $passwort = "" Then
MsgBox(16,"Fehler","Angaben fehlen")
Return 0
EndIf
$bUserName = _Crypt_EncryptData($username, $hMInput,$CALG_AES_256)
$bPassWord = _Crypt_EncryptData($passwort, $hMInput,$CALG_AES_256)
IniWrite($data,$titel,"1",$bUserName)
IniWrite($data,$titel,"2",$bPassWord)
GUICtrlSetData($Input1,"")
GUICtrlSetData($Input2,"")
GUICtrlSetData($Input3,"")
GUICtrlSetData($List1,$titel,"")
EndFunc
Func _restore()
$listdata = GUICtrlRead($List1)
If $listdata = "" Then
Return 0
EndIf
$dUsername = _Crypt_DecryptData(IniRead($data,$listdata,"1",""), $hMInput, $CALG_AES_256)
$dPasswort = _Crypt_DecryptData(IniRead($data,$listdata,"2",""), $hMInput, $CALG_AES_256)
MsgBox(0,$listdata,"Benutzername: "&BinaryToString($dUsername)&@CRLF&"Passwort: "&BinaryToString($dPasswort))
EndFunc
Func _MasterKey()
If GUICtrlRead($sInput1) <> GUICtrlRead($sInput2) Then
MsgBox(16,"Fehler","Passwörter stimmen nicht überein")
GUICtrlSetData($sInput1,"")
GUICtrlSetData($sInput2,"")
Return 0
EndIf
$config = _Crypt_HashData(GUICtrlRead($sInput1),$CALG_SHA1)
IniWrite($data,"Config","1",$config)
GUISetState(@SW_HIDE,$sForm1)
MsgBox(0,"Bobek's PW Tresor","Passwort erfolgreich erstellt.Das Programm muss neugestartet werden")
Exit
EndFunc
Func SpecialEvents()
Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
EndSelect
EndFunc
man benötigt natürlich die Crypt.au3 udf.
Viel Spaß