md5($username.$password.$salt) sicher?

chuvak

Erfahrenes Mitglied
Ich möchte auf meiner Website einen passwortgeschützten Bereich einrichten. Dabei ist mir die Sicherheit sehr wichtig.
Auf das "einfache" md5 möchte ich mich nicht verlassen (Rainbow Table), deshalb möchte ich da "Salt" einbauen.

Wie sicher wäre folgende Kombination:
PHP:
$username = "hans";
$password = "buch23";
$salt = "abcdefghijklmnopqrstuvwxyz1234567890";

$hash = md5(md5($username.$password.$salt));
Der Variable $salt kann ich auch jeden beliebigen String, der in keinem deutschen Lexikon existiert, zuweisen.

Würden die heutigen Rechner Jahre brauchen, um dieses Passwort zu knacken? ;)
 
Zuletzt bearbeitet:
Moin ??????? :-)

Ich würde mal sagen, das Passwort ist sicher.

Aber ein sicheres Passwort ist nur ein Teil...du brauchst eine sichere Session.

Wenn eine Session gestohlen wird, ist der Dieb ohne Login angemeldet, falls nicht die "Echtheit" der Session geprüft wird.
Dann brauch er das Passwort nicht knacken, er setzt einfach ein neues.
 
Es reicht eigentlich, wenn du nur md5($password.$salt) und einen zufälligen, aber für diesen Benutzer konstanten Salt-Wert verwendest.
 
Das ist ja das Problem: Ich weiß, wie man einen zufälligen Wert generiert, aber ich weiß nicht, wie man den für jeden Benutzer konstant hält.
Deshalb habe ich das auch mit nicht zufälligen, dafür sehr langen Werten gemacht.
 
Entweder du verwendest eine eigene Spalte für den Salt-Wert oder speicherst sie zusammen mit dem Hash-Wert (beispielsweise <Salt>:<Hash>).
 
Würde auch sagen, dass md5($name.$salt) auf jeden fall reicht, solange man den rest auch sicher programmiert hat, ansonsten kann das passwort so sicher sein wie es nur geht, und es wird nichts bringen ...
 
Wenn dir md5 zu unsicher ist, kannst du ja auch sha benutzen.
http://de.wikipedia.org/wiki/Secure_Hash_Algorithm
Es gibt dabei verschiedene sha, oder du schaus mal mit phpinfo() nach welche Sicherheitsalgorhytmen von deinem Server unterstützt werden.

Danke, das habe ich gemacht. Von SHA habe ich davor noch nie was gehört, hab mich deshalb grade schlau gemacht.
Was haltet ihr hiervon:
PHP:
$sicher = hash("sha512", 'passwort123');

(Ich weiß ja, dass md5+salt für eine private Website reichen, ich möchte aber DIE Verschlüsselung haben. Die Beste, die man mit einfachen Mitteln herstellen kann. ;) )
 
Ein Hash-Algorithmus ist keine Verschlüsselung sondern eine Einweg-Funktionen. Das heißt, der Eingabewert kann anhand des Hash-Werts nicht mehr (eindeutig) ermittelt werden. (Kollisionen sind aber durchaus möglich.)
 
Zurück