Salzen und hashen von Passwörtern mit SHA-512 (UDF)

  • 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

    [autoit]

    Consolewrite(_HashPassword("GeheimesPasswort"))

    [/autoit]


    Ergebnis

    Code
    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

    Code
    True

    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