Ich habe hier ein Scribt geschrieben mit den man sich ein PW-Profil anlegen kann welche PWs speichert.
Bsp. ich erstelle "PW-Tabelle Arbeit". Nun kan ich ein neues PW adden wie zb. Mein root PW. Nun kann ich das Pw eingeb und es mit einem Masterschlüssel verschlüsseln. Bei Bedarf kan ich dan das pw wieder in klartext ausgeben lassen indem ich dem Masterschlüssel eingebe. Das Pw ist nun im zwischenspeicher und kan ganz bequem mit STRG+v iwo eingefügt werden.
(Note die PW-Tabellen werden verschlüssetl in einer ini gespeichert)
Bitte schreibt mir Anregungen oder Fragen oder Käfer damit ich ein intuitive und sicheres Tool der Menschheit schenken kann^^
Spoiler anzeigen
#include <Crypt.au3>
#include <GUIConstantsEx.au3>
#include <Array.au3>
Opt('MustDeclareVars', 0)
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func Example()
Local $pwneu,$pwaendern,$pweingeben
Local $msg
Local $pws[60][2]
Local $Array[60][2]
GUICreate("Passwortsafe")
$new=GUICtrlCreateButton("neue PW-Tabelle erstellen",70,30)
$load=GUICtrlCreateButton("PW-Tabelle laden",250,30)
$reload=GUICtrlCreateButton("PW-Tabelle aktualisieren",245,160)
GUICtrlCreateGroup("Passwordname", 35, 80, 160,60)
$ausgabe=GUICtrlCreateInput("",220,100,80,20)
$liste=GUICtrlCreateCombo("", 40, 100,150,20) ; create first item
GUICtrlCreateGroup("Passwordwert", 210,80,120,60)
$pwneu=GUICtrlCreateButton("neues pw erstellen",10,160,120,30)
$pwaendern=GUICtrlCreateButton("pw ändern",140,160,80,30)
GUICtrlCreateLabel("Zum Verwalten des Pw safes solten sie folgendes beachten:" & @LF & "1.Erstellen sie eine neue Pw Tabelle oder laden sie eine alte" & @LF & "2.Fügen sie der Tabelle ein neues zu verschlüsselndes Pw hinzu." & @LF & "3 Geben sie den Eintrag einen eindeutigen Namen" & @LF & "4.Geben Sie den Schlüssel ein mit den das Pw gesichert werden soll." & @LF & "5.Nun können sie sich das Pw in die Zwichenablage kopieren" & @LF & "indem sie ihr Pw auswählen und den richtigen Schlüssel eingeben" , 30, 210)
$pweingeben=GUICtrlCreateButton("Schlüssel eingeben",250,320,120,35)
;MsgBox(0,"",IniRead($var, "section2","JPM","nicht gefunden"))
GUISetState()
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
if $msg=$liste then GUICtrlSetData($ausgabe,iniRead($var, "section2",GUICtrlRead($liste),"nicht gefunden"))
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
if $msg=$new Then
$loc=FileSaveDialog( "Choose a name.", @DesktopCommonDir, "Passworttabellen (*.ini)", 2)
iniWrite($loc & ".ini","section2","Beispiel Pw Name","Beispiel Pw")
$msg=$load
EndIf
if $msg=$load Then
$message="Bitte wähle eine Datei"
$var = FileOpenDialog($message, @DesktopCommonDir & "\", "Text (*.ini;)", 1 + 4 )
If @error Then
MsgBox(4096,"","No File(s) chosen")
EndIf
$pws=IniReadSection($var, "section2")
;IniWrite("C:\Temp\myfile.ini", "section2", "key", "this is a new value")
for $counter=1 to UBound($pws)-1
GUICtrlSetData($liste,$pws[$counter][0] ) ; add other item snd set a new default
Next
$msg=$reload
EndIf
if $msg=$reload Then
$pws=IniReadSection($var, "section2")
for $counter=1 to UBound($pws)-1
GUICtrlSetData($liste,$pws[$counter][0] ) ; add other item snd set a new default
Next
GUICtrlSetData($ausgabe,iniRead($var, "section2",GUICtrlRead($liste),"nicht gefunden"))
EndIf
if $msg=$pwneu Then
$pwname=InputBox("Eingabe 1","Bitte geben sie ein Namen für das PW ein","","")
while 1
$pw=InputBox("Eingabe 1","Bitte geben sie ein PW ein","","*")
$pw2=InputBox("Eingabe 2","Bitte geben sie das PW zu Sicherheit erneut ein","","*")
if $pw = $pw2 Then
ExitLoop
Else
MsgBox(0,"Hinweis","Pws sind nicht gleich")
EndIf
WEnd
$Key=InputBox("Schlüssel","Bitte geben sie einen Schlüssel ein der das Pw verschlüsseln soll","","*")
$Key=_Crypt_DeriveKey($Key,$CALG_RC4)
$pw=_Crypt_decryptData($pw,$Key,$CALG_USERKEY)
IniWrite($var, "section2",$pwname,$pw)
$pws=IniReadSection($var, "section2")
for $counter=1 to UBound($pws)-1
GUICtrlSetData($liste,$pws[$counter][0] ) ; add other item snd set a new default
Next
GUICtrlSetState ( $liste, $GUI_DEFBUTTON )
EndIf
if $msg=$pweingeben Then
$Key=InputBox("Schlüssel","Bitte geben sie den Schlüssel ein mit dem sie das Pw gesichrt haben","","*")
$Key=_Crypt_DeriveKey($Key,$CALG_RC4)
$var2 = Binary(IniRead($var, "section2",GUICtrlRead($liste),"nicht gefunden"))
$code=BinaryToString(_Crypt_encryptData($var2,$Key,$CALG_USERKEY))
_Crypt_DestroyKey($Key)
ClipPut($code)
EndIf
if $msg=$pwaendern Then
while 1
$pw=InputBox("Eingabe 1","Bitte geben sie ein PW ein","","*")
$pw2=InputBox("Eingabe 2","Bitte geben sie das PW zu Sicherheit erneut ein","","*")
if $pw = $pw2 Then
ExitLoop
Else
MsgBox(0,"Hinweis","Pws sind nicht gleich")
EndIf
WEnd
$Key=InputBox("Test","Bitte geben sie einen Schlüssel ein der das Pw verschlüsseln soll","","*")
$Key=_Crypt_DeriveKey($Key,$CALG_RC4)
$pw=_Crypt_decryptData($pw,$Key,$CALG_USERKEY)
IniWrite($var, "section2",GUICtrlRead($liste),$pw)
EndIf
WEnd
EndFunc ;==>Example