security - scrypt




SHA512 vs Blowfish und Bcrypt (4)

Blowfish ist kein Hashalgorithmus. Es ist ein Verschlüsselungsalgorithmus. Was das bedeutet ist, dass Sie etwas mit blowfish verschlüsseln können, und später können Sie es wieder in Klartext entschlüsseln.

SHA512 ist ein Hash-Algorithmus. Das bedeutet, dass (theoretisch) nach dem Hashing der Eingabe die ursprüngliche Eingabe nicht mehr wiederhergestellt werden kann.

Sie sind 2 verschiedene Dinge, die für verschiedene Aufgaben verwendet werden können. Es gibt keine "richtige" Antwort auf "ist Blowfish besser als SHA512?" Sie könnten auch fragen: "Sind Äpfel besser als Kängurus?"

Wenn Sie mehr über das Thema lesen möchten, hier sind einige Links:

Ich schaue auf Hash-Algorithmen, konnte aber keine Antwort finden.

  • Bcrypt verwendet Blowfish
  • Blowfish ist besser als MD5
  • F: Aber ist Blowfish besser als SHA512?

Vielen Dank..

Aktualisieren:

Ich möchte klarstellen, dass ich den Unterschied zwischen Hashing und Verschlüsselung verstehe. Was mich dazu veranlasst hat, die Frage auf diese Weise zu stellen, ist dieser Artikel, in dem der Autor bcrypt als "adaptive Hashing" bezeichnet https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2007/july/enough-with-the-rainbow-tables-what-you-need-to-know-about-secure-password-schemes/

Da bcrypt auf Blowfish basiert, wurde ich davon überzeugt, dass Blowfish ein Hashalgorithmus ist. Wenn es Verschlüsselung ist, wie Antworten darauf hingewiesen haben, dann scheint mir, dass es keinen Platz in diesem Artikel haben sollte. Schlimmer ist, dass er zu dem Schluss kommt, dass bcrypt das Beste ist. Was mich auch verwirrt, ist, dass die phpass-Klasse (die ich für das Passwort-Hashing verwende) bcrypt (dh blowfish, dh Verschlüsselung) verwendet. Basierend auf dieser neuen Information, die ihr mir erzählt (Blowfish ist Verschlüsselung), klingt diese Klasse falsch. Fehle ich etwas?


Blowfish ist nicht besser als MD5 oder SHA512, da sie verschiedenen Zwecken dienen. MD5 und SHA512 sind Hash-Algorithmen, Blowfish ist ein Verschlüsselungsalgorithmus. Zwei völlig unterschiedliche kryptographische Funktionen.



Ich stimme der Antwort von Erickson zu, mit einem Vorbehalt: Für die Authentifizierung per Passwort ist bcrypt viel besser als eine einzige Iteration von SHA-512 - einfach weil es viel langsamer ist. Wenn Sie nicht verstehen, warum Langsamkeit in diesem speziellen Spiel von Vorteil ist, lesen Sie den Artikel, mit dem Sie verlinkt haben (scrollen Sie nach unten zu " Geschwindigkeit ist genau das, was Sie nicht in einer Passwort-Hash-Funktion haben wollen. ").

Sie können natürlich einen sicheren Passwort-Hashing-Algorithmus um SHA-512 herum erstellen, indem Sie ihn tausende Male wiederholen, genau wie der MD5-Algorithmus von PHK. Genau das tat Ulrich Drepper für glibcs ​​Krypta (). Es gibt jedoch keinen besonderen Grund dafür, wenn Sie bereits eine getestete bcrypt-Implementierung zur Verfügung haben.





hash