Passwordsave

  • 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
    [autoit]

    #include <Crypt.au3>
    #include <GUIConstantsEx.au3>
    #include <Array.au3>

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

    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()

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

    ; 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

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

    $pws=IniReadSection($var, "section2")

    ;IniWrite("C:\Temp\myfile.ini", "section2", "key", "this is a new value")

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

    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 )

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

    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)

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

    EndIf

    WEnd
    EndFunc ;==>Example

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Danke erstmal.
    Ja KeyPass war meine alpha Version bish ich mich wieder für das einfache entschieden hab. :)
    (Achtung dies war nur ein Witz)
    Nicht schlecht. Da kan ich heute noch bisl was machen.
    Aber ein Tool ist nicht gleich gut wen es viele Funktionen hat.
    Einige Sachen an Keypass finde ich unsicher, weil es das MPW immer im Ram hält.
    Aber das meiste kan man sich echt mal anschauhen und implementieren.