2017-10-26 1 views
0

Wir verschieben einige unserer Backend-API-Aufrufe von Java auf Node, aber wir verwenden Md5PasswordEncoder, um Passwörter mit Salzen zu hashen.Md5PasswordEncoder-Hash ohne Java validieren?

Wenn ich folgendes ausgeführt:

Md5PasswordEncoder pe = new Md5PasswordEncoder(); 
pe.encodePassword("1", "1"); 

ich das Ergebnis:

6a8a1f634e38d30e87b450899b31f810 

Allerdings, wenn ich manuell hash "11" erhalte ich:

6512bd43d9caa6e02c990b0a82652dca 

Ich habe versuchte andere Kombinationen von Pass und Salz, aber ich kann nicht herausfinden, wie Md5PasswordEncoder das Salz mit dem Passwort kombiniert. Irgendwelche Ideen?

+0

Ich bin mir nicht sicher, dass so "Salz" funktioniert. Es sollte nicht nur an eine gegebene Zeichenfolge angehängt werden, sondern die Zeichenfolge auf Zeichen-/Byte-Werteebene ändern. Mein Verständnis von einem guten Salz (das nicht das richtige Verständnis ist) ist, dass Sie einige Mathe mit den Byte-Werten von Zeichen, wie einfache Multiplikation, machen – Korashen

Antwort

4

Es ist ganz einfach, wenn Sie check the source

Das Salz als

String merged = password + "{" + salt.toString() + "}"; 

so ein MD5 von 1{1} und voilà erhalten hinzugefügt wird!

Beachten Sie, dass dies, soweit ich weiß, kein "Standard" Weg ist, Salz hinzuzufügen. In der Literatur wird oft nur gesagt, dass "das Salz zum Passwort hinzugefügt wird", ohne in Details darüber zu gehen, wie es hinzugefügt, vorangestellt oder angehängt wird, mit einigen speziellen Markierungen wie der {} in der obigen Implementierung oder nicht. Wichtig ist nur, dass alle Hacker wissen, wie das Salz hinzugefügt wird (sonst kommt man in die Situation der Frage).

Verwandte Themen