Hallo zusammen!
mit der folgenden UDF könnt ihr Passwörter von Benutzern salzen und hashen um sie in einer Datenbank oder Datei speichern zu können.
Der 40-stellige „salt“ wir bei jedem Hashvorgang neu generiert und an dass Passwort angehängt. Dieser String wir dann 256 mal gehasht.
Die Funktion _HashPassword liefert dann den Hash und den „salt“ als langen String getrennt durch das Zeichen „$“ zurück.
Diesen String könnt ihr dann in der Datenbank oder Datei speichern.
Beispiele
Passwort hashen
Consolewrite(_HashPassword("GeheimesPasswort"))
[/autoit]
Ergebnis
7927CC3849A84ECA840AAF8A0B5788809DBD3FA8072F9F8D8B23E19F4D8F7253E649E3030BDB27CDAB98BCBA3D44E6C74116BF678D3C52D1A8646F086975283D$eNJ50Sum4j5wsKwZt7XxRk90p18Ki6bZvqZk8d4b
Auch wenn immer wieder das selbe Kennwort verwendet wird, ergibt das jedes Mal einen anderen Hash.
Passwort prüfen
[autoit]Consolewrite(_CheckPassword("GeheimesPasswort", "7927CC3849A84ECA840AAF8A0B5788809DBD3FA8072F9F8D8B23E19F4D8F7253E649E3030BDB27CDAB98BCBA3D44E6C74116BF678D3C52D1A8646F086975283D$eNJ50Sum4j5wsKwZt7XxRk90p18Ki6bZvqZk8d4b"))
[/autoit]
Ergebnis
Ihr findet den Code bei Github in der jeweils aktuellen Version: http://m3d1c5.github.com/HashPassword.au3
Ich freue mich über Verbesserungsvorschläge, die Ihr mir entweder mitteilen, oder als Pull Request bei Github einreichen könnt.
Viele Grüße
M3d1c5