Passwörter in Mysql-DB


#1

Hey zsm

Ich muss Accountdaten in ner MySQL-DB speichern, die Passwörter hashe ich in PHP mit sha512 und schreibe die dann in die DB per query. Nun habe ich aber gelesen, das SHA512 nicht sicher genug für Passwörter ist und man leiber auf bcrypt oder so wechseln sollte für pw? Stimmt das? Dachte sha512 ist soweit erstmal sicher, wollte gerade nen salt fürs pwhashing einbauen und bin dann dadrauf gestoßen

Und wie benutze ich bcrypt dann am besten? hab was von der password() function in mysql gehört, dann aber auf der mysql dev seite gelesen, das die veraltet ist… Und dann am besten in php mit dem salt sha512 hashen und den wert dann später mit bcrypt in der DB oder gleich alles in PHP?

Mein erstes mal, das ich so mit PW-Hashing zu tun habe, daher sry für die fragen


#2

Moin, ich lehn mich mal aus dem Fenster, pbkdf2 + 10,000 iterations + salt ist “considered to be safe”. Das “müsstest” du implementieren oder eine Library dafür verwenden. Oder, wie du schon schreibst, was als etwas sicherer gilt, ist bcrypt oder gar Scrypt.


#3

Das ganze mehrmals zu hashen halte ich fürn bisschen Übertrieben. Also bcrypt+salt sollte ausreichen. Und PHP machts dir da ja recht einfach:

http://php.net/manual/de/function.password-hash.php

Also in PHP den PW-Hahs erstellen und dann in die Datenbank packen.


#4

Doppelt hashen war ja auch nicht ds ursprüngliche Ziel damit, eher das ich dachte, bcrypt geht nur direkt in der DB und weil die das PW nicht im klartext übertragen wollte, wollte ich es per sha512 übertragen und dann in der DB erst mit bcrypt verschlüsseln. Wenn ichs direkt mit mit bcrypt verschlüsseln kann, gehts natürlich auch.

Wie ist aber der Workaround für PHP 5.3.8? Password_hash existiert erst seit 5.5 und ich hab heute meinen Admin dazu überreden können, PHP zu updaten, allerdings wird das nicht in naher Zukuft geschehen, eher in paar Monaten. Bis dato muss ich mit PHP 5.3.8 zurechtkommen und kann diese Funktion nicht benutzen


#5

Ganz einfach:
Admin in den Arsch treten, dass er das Zeitnah machen soll. Wenn es dafür keine deftigen Gründe gibt, dann hat er sich um die blockade zu kümmern. Zur Not eskalieren lassen.

Für den Fall, dass das nicht funktioniert:
Google ist dein Freund. Wie bei SO zu lesen

(tl, dr):
gibt es ein paar Möglichkeiten. Z.b. die Support-lib: https://github.com/ircmaxell/password_compat
oder das portable php password hashing framework: http://www.openwall.com/phpass/

Für beides findest du Codebeispiele auf der verlinkten SO-Antwort