Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Welche Funktion zum Hashen von Passwörtern in MySQL verwenden?

Es ist nicht notwendigerweise, dass Sie MD5 nicht verwenden sollten, ebenso wenig, dass Sie nur verwenden sollten MD5, da Sie dadurch anfällig für Rainbow-Table-Angriffe sind (eine Rainbow-Tabelle ist eine Tabelle mit vorberechneten Hash-Werten – wenn Ihr Passwort auch nur annähernd üblich oder einfach ist, muss der Angreifer nur den Hash nachschlagen und er kennt Ihr Klartext-Passwort. )

Zumindest sollten Sie jedem Passwort ein Salt hinzufügen, damit jede vorhandene Regenbogentabelle nutzlos ist und der Angreifer gezwungen wird, eine komplett neue Regenbogentabelle nur für Ihre Passwortdatenbank zu erstellen.

Noch besser ist es, für jedes Passwort in Ihrer Datenbank ein anderes Salt zu verwenden, sagen wir den zugehörigen Benutzernamen, sodass ein Angreifer nicht einmal eine Regenbogentabelle für Ihre gesamte Datenbank erstellen kann und jeden Eintrag einzeln knacken muss.

MD5 ist auch ein sehr schneller Algorithmus. Geschwindigkeit ist der Feind beim Cracken – je länger es dauert, einen Hash zu generieren, desto länger dauert es für jeden Versuch, den ein Hacker unternimmt. Etwas Einfaches wie das 100-malige Hashen des Klartextes mit einem neuen zusätzlichen Salt wäre für einen Benutzer, der sich auf Ihrer Website anmeldet, kaum wahrnehmbar (wenn überhaupt), aber es würde die Zeit erhöhen, die zum Brute-Force-Erzwingen eines Passworts benötigt wird 100 Mal.

Viel, viel mehr Details hier:http://www.codinghorror.com/blog/ archives/000953.html