• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Passwort in SQL-Spalte speichern (via MD5 verschlüsseln)

xSTVNx

Mitglied
Ich möchte Passwörter in einer SQL-Tabelle bzw. in einer bestimmten Spalte speichern. Ich habe nun schon gelesen, dass man das mit md5 verschlüsseln soll...

Doch wie genau definiere ich denn jetzt die SQL-Spalte, damit es verschlüsselt wird??
 
Zuletzt bearbeitet:
Werbung:
Werbung:
Moin,
ich würde dafür nicht! MD5 nutzen, und wenn möglich auch nicht SHA1. Denn beide Verfahren gelten mittlerweile als unsicher und für md5 gibt es Exploits. Das sind auch keine Verschlüsselungen, sondern hashes. Diese lassen sich nicht wiederherstellen, außer durch etwaige Exploits... also one way.
BTW: MySQL kann sowohl MD5 als auch SHA1
Das sieht dann so aus
Code:
INSERT INTO tabelle (whatever, passwort, usw) VALUES('feld1', SHA1('geheim'), 'nochwas');
Beim select prüfen tust du dann so
Code:
SELECT * FROM tabelle WHERE passwort=SHA1('geheim');

Nimm wenigstens SHA1 oder such dir ne klasse in PHP die verschlüsseln kann.

varchar 40 sollte dafür reichen.

MfG
 
Du kannst MD5 weiterhin nutzen, wenn du das Passwort 'saltest'. Solange keiner Zugriff auf deine Dateien hat und nicht weiß, wie du das Passwort saltest, hat er kaum eine Chance, den Login zu knacken oder das Passwort auszulesen.

Dadurch setzt du einfach einen String (immer den gleichen!) vor das Passwort und wandelst das Ergebnis in MD5 um.

PHP:
$passwort = $_POST['passwort'];
$salt_str = 'geheimerstring123';

$gesaltetes_passwort = md5($salt_str . $passwort);

Natürlich kannst du dir die tollsten Funktionen und Algorithmen ausdenken, um dein Passwort zu salten.

Das sind auch keine Verschlüsselungen, sondern hashes. Diese lassen sich nicht wiederherstellen, außer durch etwaige Exploits... also one way.

Was für Passwörter ja relativ sinnvoll ist ^^ Sollte der Mechanismus für die Passwortverschlüsselung geändert werden, weicht man auf ein 2tes Tabellenfeld aus und beim nächsten Login speichert man das Passwort ab.
 
Werbung:
Zurück
Oben