2010-12-04 4 views
20

Generiert der MD5-Algorithmus immer dieselbe Ausgabe für dieselbe Zeichenfolge?Generiert der MD5-Algorithmus immer dieselbe Ausgabe für dieselbe Zeichenfolge?

Verwendet ein Salz das einzige, um unterschiedliche Ausgabe zu produzieren?

+2

Können Sie erklären, warum Sie fragen? Es scheint, als ob du aus irgendeinem Grund ein anderes Verhalten willst. –

+1

Es ist ein deterministischer Algorithmus. Wie könnte es anders sein? –

+0

Ich bin nicht vertraut mit den Unterschieden zwischen Kryptographie und Hashing. Ich denke auch hatte es RC5 gemischt – vfclists

Antwort

30

Ja, sonst wäre MD5 nutzlos für Dinge wie Dateiverifizierung. Welchen Grund hätten Sie für nicht deterministische Ausgabe?

+0

Ich lachte über "Was Grund haben Sie für nicht deterministische Ausgabe", weil das ist mein Gedanke genau. Offensichtlich ist .NET's GetHashCode() _is_ jedoch nicht-deterministisch, zumindest zwischen Anwendungsläufen. –

6

Ja, ein Hash-Algorithmus erzeugt immer die gleiche Ausgabe. Wenn Sie dasselbe Salz verwenden, erzeugt dies auch immer die gleiche Ausgabe für eine gegebene Eingabe.

5

Ja, MD5 gibt immer die gleiche Ausgabe aus. So wird es für Passwörter verwendet. Sie speichern den Hash in der Datenbank, und wenn der Benutzer sein Kennwort eingibt, wird es erneut gehasht und die beiden Hashes werden verglichen.

HINWEIS: MD5 wird nicht zum Hashing von Kennwörtern empfohlen, da es kryptographisch schwach ist. Es sind geeignetere kryptographische Hashes verfügbar, z. B. bcrypt. In der Vergangenheit wurde es jedoch für diesen Zweck verwendet.

+0

MD5 sollte nicht für Passwörter verwendet werden, niemals. – mavnaranjo

+0

@mavnaranjo: glaube nicht, dass es einen Downvote garantiert. Ich liege nicht falsch, und das war vor 5 Jahren. Es -was- und -is wird für Passwörter verwendet, so unsicher es auch sein mag, und es ist immer noch ein gültiger Veranschaulichungspunkt dafür, wie Sie wissen, dass es eine invariante Ausgabe hat. Ich werde jedoch einen Schnitt zu diesem Punkt hinzufügen. –

+0

Upvoted jetzt;). – mavnaranjo

0

Ja. MD5 ist eine Hash-Funktion.

Dies bedeutet nicht bedeuten, dass ein MD5 einzigartig ist. Mehrere Eingaben können demselben Hash zugeordnet werden, aber jede Eingabe hat nur einen Hash.

1

Ja MD5 ist deterministisch, und dies wird als eine wünschenswerte Eigenschaft für viele Anwendungen von Message Digest-Funktionen angesehen.

Wie für die Verwendung eines Salzes, damit meinen Sie wirklich "Ändern der Eingabe-String auf eine subtile Weise", nicht wahr? Und natürlich ist es auch ein wünschenswertes Merkmal von Nachrichtenauszügen, dass sie (mit sehr hoher Wahrscheinlichkeit) einen anderen Auszug für eine andere Nachricht erzeugen.

Verwandte Themen