Ich denke, die Verwendung von md5 oder sha256 oder eines für die Geschwindigkeit optimierten Hashs ist vollkommen in Ordnung und ich bin sehr neugierig zu hören, welche Rebuttle andere Benutzer haben könnten. Hier sind meine Gründe
Wenn Sie erlauben Benutzer , schwache Passwörter zu verwenden, wie Gott, Liebe, Krieg, Frieden dann nicht die Verschlüsselung Rolle , werden Sie immer noch der Benutzer werden , so dass in dem Kennwort eingeben nicht die Hash und diese Passwörter oft zum ersten Mal verwendet werden, so wird dies nicht gehen etwas mit Verschlüsselung zu tun haben.
Wenn Sie kein SSL verwenden oder kein Zertifikat haben, können Angreifer, die den Datenverkehr abhören, das Kennwort abrufen. Alle Versuche, mit Javascript oder Ähnlichem zu verschlüsseln, sind clientseitig und können leicht geknackt und überwunden werden. Wieder ist dies nicht alles mit Datenverschlüsselung auf Server - Seite zu tun haben , .
Brute - Force - Angriffe Vorteil schwache Passwörter nehmen und wieder , weil Sie dem Benutzer erlauben , die Daten eingeben , wenn Sie die Login - Beschränkung von 3 nicht haben oder sogar ein wenig mehr als das Problem wieder nicht alles mit Datenverschlüsselung zu tun hat.
Wenn Ihre Datenbank kompromittiert wird, wurde höchstwahrscheinlich alles kompromittiert, einschließlich Ihrer Hashing-Techniken, egal wie kryptisch Sie sie gemacht haben. Dies kann wiederum ein verärgerter XSS-Angriff oder eine SQL-Injection eines Mitarbeiters oder ein anderer Angriff sein, der nichts mit Ihrer Kennwortverschlüsselung zu tun hat.
Ich glaube, Sie sollten immer noch verschlüsseln, aber das einzige, was ich bei der Verschlüsselung sehen kann, ist zu verhindern, dass Personen, die bereits Zugriff auf die Datenbank haben oder diese irgendwie erhalten haben, das Passwort nur laut vorlesen. Wenn es sich um jemanden handelt, für den in der Datenbank keine Berechtigung besteht, müssen Sie sich größere Sorgen machen, weshalb Sony in Betracht gezogen wurde, weil ein verschlüsseltes Passwort alles einschließlich der Kreditkartennummern schützte. Alles, was es tut, ist, das eine Feld zu schützen, das es ist.
Der einzige reine Vorteil, den ich bei komplexen Verschlüsselungen von Passwörtern in einer Datenbank sehen kann, besteht darin, Mitarbeiter oder andere Personen, die Zugriff auf die Datenbank haben, daran zu hindern, nur die Passwörter vorzulesen. Wenn es sich also um ein kleines Projekt handelt oder um etwas, für das ich mich nicht zu sehr um die Sicherheit auf der Serverseite kümmern würde, würde ich mich mehr um die Sicherung von Dingen kümmern, die ein Client möglicherweise an den Server sendet, wie z. B. SQL-Injection, XSS-Angriffe oder eine Vielzahl anderer Möglichkeiten könnte kompromittiert werden. Wenn jemand anderer Meinung ist, freue ich mich darauf, zu lesen, wie ein superverschlüsseltes Passwort von Seiten des Clients ein Muss ist.
Der Grund, warum ich versuchen wollte, dies klar zu machen, ist, dass die Leute zu oft glauben, dass ein verschlüsseltes Passwort bedeutet, dass sie sich keine Sorgen darüber machen müssen, dass es kompromittiert wird, und dass sie aufhören, sich um die Sicherung der Website zu sorgen.