2012-06-24 5 views
6

Ich arbeite an einem Registrierungsformular, wo ich das Passwort verschlüsseln muss, ich habe gehört, dass es für mich empfohlen wird, die Blowfish-Verschlüsselung für Passwörter zu verwenden, Wie implementieren Sie eine Blowfish-Verschlüsselung mit PHP crypt() Funktion? Auch ich habe vor, das Passwort später für die Anmeldung abzurufen.Verwenden von Blowfish für die Verschlüsselung mit PHP

+0

Werfen Sie einen Blick auf [this] (http://www.chilkatsoft.com/p/php_blowfish.asp). –

+1

Sie sollten keine Kennwörter "verschlüsseln", sondern eine Einweg-Hashing-Funktion verwenden. Siehe: [Wie benutzt man bcrypt für Hash-Passwörter in PHP?] (Http://stackoverflow.com/q/4795385/911182) – Herbert

+0

Lesen Sie auch: [Wie kann ich die Passwörter meiner Benutzer sicher speichern?] (Http://stackoverflow.com/questions/1581610/how-can-i-store-my-users-passwords-safely/1581919#1581919) – Jacco

Antwort

6

Die kurze Antwort ist crypt verwenden, um mit einem Salz mit den Zeichen beginnen 2a $ $, eine zweistellige Parameter kosten, $ und 22 Ziffern aus dem Alphabet ./0-9A-Za-z. Dies funktioniert nur auf Systemen, die den Blowfish-Verschlüsselungsalgorithmus unterstützen. PHP 5.3 implementiert es jedoch nativ. Weitere Details finden Sie unter PHP manual — crypt.

Beispiel:

crypt('rasmuslerdorf', '$2a$07$somesillystringforsalt') 

Das Salz Zeichenfolge löst den entsprechenden Algorithmus. Der zweistellige Preis Parameter ist der Basis-2-Logarithmus der Iterationszählung für den zugrunde liegenden Blowfish-basierten Hashalgorithmus und muss im Bereich [04 – 31] liegen. In dem Beispiel 07 teilt der Algorithmus 2 oder 128 Iterationen mit. Je höher diese Zahl ist, desto länger dauert die Ausführung, ABER im Zusammenhang mit Hashing-Benutzerpasswörtern ist dies eine GOOD Sache.

This answer to a similar question erklärt genauer, was BCrypt ist, wie es sich auf Blowfish bezieht und warum Sie es verwenden sollten. Es gibt viele andere related topics here on Stack Overflow.


phpass ist ein ausgezeichneter, einfacher Passwort-Hashing-Framework verwenden, die auf allen Systemen funktionieren, Blowfish zu verwenden, wenn es ’ s unterstützt, und zurück auf andere Algorithmen fallen, wenn es ’ s nicht.

4

Sie sollten nie einen Blowfish benötigen, um ein Passwort wie dieses zu verschlüsseln. Das Registrierungsformular sollte über HTTPS sein, das die Abwehr eines angreifenden Angreifers übernimmt. Das Passwort sollte selbst gehashed werden (nie verschlüsselt). bcrypt ist eine gute Passwort-Hash-Funktion basierend auf Blowfish. Aber es gibt viele Beiträge im Zusammenhang mit sicheren Passwortspeicherung auf SO.

+1

+1 Ich hätte wahrscheinlich HTTPS erwähnt. – Herbert

+0

Nach [Heartbleed Schwachstelle] (http://heartbleed.com/), ich denke, nichts ist völlig sicher. – ontananza