Verschlüsselung hash_pbkdf2

parix86

Grünschnabel
Hallo,

ich bin gerade auf die Funktion hash_pbkdf2 gestoßen.

Nun wollte ich fragen ob diese effektiver gegenüber dem in meinen Augen schlechterem md5 ist.

Auf den ersten blick finde ich Persönlich sieht das ganze recht gut aus, jetzt wollte ich auch mal Meinungen von anderen hören, danke schon mal.

Gruss Parix
 
Ich hab jetzt mal die Dokumentation der Funktion (war mir bislang auch nicht aufgefallen) durchgelesen. Wenn ich es korrekt verstanden habe, macht sie selbst keine Hash-Bildung sondern verwendet einen beliebigen Algo (z.B. auch MD5 oder SHAxxx) um die Hash-Bildung zu iterieren und Salt anzuwenden. Es ist quasi eine Hilfsfunktion um es nicht selbst implementieren zu müssen, aber prinzipiell kann man mit einer Schleife (für die Anzahl der Iterationen) und einem Salt sowie einer der anderen Hash-Funktionen selbst eine solche Hilfsfunktion bauen.

Sie ist also nicht effektiver als MD5, weil sie selbst keinen Hash-Algo implementiert. Der Vergleich hinkt also. Wenn dann müsstest du MD5 mit SHA oder RIPEMD vergleichen.
 
Hi

wie genau "effektiver"?
Geschwindigkeit, Sicherheit...?

Wenn meine Erinnerungen stimmen ist das PBKD-Etwas prinzipiell
nur eine mehrfache Ausführung von einem Hash (zB. MD5) und Salten.

edit: Ok, meine Erinnerungen scheinen zu stimmen :D
 
Hey Vielen dank für eure Antworten.

ich werde wohl dann password_hash() verwenden, wozu ich eine frage hätte.

Ich verstehe noch nicht so ganz was es mit den Options aus´fsich hat, welche werte und für was kann ich in das Array schreiben?

Ich werd emich allerdings auch heute noch etwas mehr damit beschäftigen.

PS: PHP 5.5 ist bei mir vorhanden.
 
Steht doch direkt in der Dokumentation (http://de3.php.net/manual/de/function.password-hash.php):

Supported Options:

salt - to manually provide a salt to use when hashing the password. Note that this will override and prevent a salt from being automatically generated.

If omitted, a random salt will be generated by password_hash() for each password hashed. This is the intended mode of operation.

cost - which denotes the algorithmic cost that should be used. Examples of these values can be found on the crypt() page.

If omitted, a default value of 10 will be used. This is a good baseline cost, but you may want to consider increasing it depending on your hardware.
 
danke habe ich überlesen.

wenn ich das richtig verstehe benötige ich aber keinen Salt da automatisch einer erstellt wird ?

Ich teste gerade ein bissl rum jedoch bekomme ich ein warning:

Provided salt is too short: 21 expecting 22...

mein testcode:

PHP:
$options = [
'cost' => 12,
'salt' => "usesomesillystringfor", 
];

$hash2 = password_hash("test", PASSWORD_BCRYPT, $options);

Danke
 
Ja, mache ich ihn länger dann sagt er mir das selbe nur eben mit anstatt der 21 eben dann 24 oder so.

Habe habe ihn jetzt mal rausgelassen.

Wie sieht es da jetzt mit der sicherheit aus ich habe folgenden hash:

$2y$12$zgFAtkAZnVRZO6oIFYyuBOZK.L0af5bRgkApZNQGMqgwppLGUI4WG

es ist ein sehr einfaches PW, aber könnte man diesen hash jetzt entschlüsseln?

Gruss Parix und danke
 
Zurück