Vollständige Version anzeigen : [PHP] Passwort verschlüsselung in MYSQL [Advanced]


badloader
08.05.2007, 18:46

Hallo zusammen,

sicher hat sich jeder Anwender schon einmal gedacht, wie er wohl am besten seine User schützen kann (sofern User vorhanden sind).

Sicher habt seit ihr bei weitergehenden Suchen auf die Funciton md5() gestoßen. Doch ist diese Function ausreichend? Meiner Meinung und Erfahrung nach: Nein.

md5 ist eine weit verbreitete Verschlüsselungmöglichkeit, die fast ausschließlich genutzt wird.

Wenn man nun ein Passwort md5 verschlüsselt kann ich euch sagen, dass sobald einer den Hash hat, er auch euer passwort geknackt hat. (Raindbowtables, Wordlists, etc)

Deshalb kann man sein passwort einfach schützen:

In MYSQL eine Spalte "salt" hinzufügen. Sie dient zur doppelten Verschlüsselung.

Das passwort besteht aus: md5(SALT + md5(Passwort);

Der Login funktioniert beispielsweise so:

if (isset($_POST['nick']) && isset($_POST['pass']))
{
$db->query("SELECT salt, password, rights FROM $table WHERE nick = '";$_POST['nick'];"' LIMIT 1");
$result = $db->fetch();

if (isset($result[0]) && isset($result[1]) && ($result[1] = md5($result[1];md5($_POST['pass']))) && ($result[2] >= $rights))
{
// SESSION SETZEN oder so
}
}


Einen User hinzufügen kann man über:
/**
* Generiert einen zufälligen Salt mit [a-z] ^ [0-9] (6 Zeichen lang: Wegen DB)
* Beispiel für $key: j6h42r
*
* ;return string
*/
function register_generate_salt ()
{
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for ($i=0; $i<10; $i++)
{
if (isset($key))
$key ;= $pattern{rand(0,35)};
else
$key = $pattern{rand(0,35)};
}
return $key;
}

/**
* Generiert den Salt und fügt ihn zum passwort
* Eintragung der Parameter in die DB
*
* ;param string $nick
* ;param string $password
* ;param string $ps3id
*/
function register_add_user ($nick, $password, $else)
{
global $db;

$salt = register_generate_salt();
$pass = md5($salt;md5($password));

$sql = "INSERT INTO users
(nick, salt, password, ps3id)
VALUES(
'";$nick;"',
'";$salt;"',
'";$pass;"',
'";$else;"')
";
$db->query($sql);
echo "Der Benutzer wurde erfolgreich angelegt <br>";
echo "Sie können sich jetzt einloggen";
}


Ich weiß nicht ob's jemandem hilft aber würde mich freuen!

Bedanken oder bewerten könnt ihr natürlich auch!

Gruß bad

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Ähnliche Themen zu [PHP] Passwort verschlüsselung in MYSQL [Advanced]
  • MySQL Passwort Hash bruten / Hash Art
    Hey, kann mir jmd sagen, wobei es sich um die neuen MySQL Hashes handelt? Soweit ich weiß waren es früher ja mal MD5 Hashes... Aber jetzt sind die ja viel länger und da ist son * vor.. Hier mal nen Bsp Hash.. *576EE5B74C20E68F2A5A240F3E408E6DE43DD73F Entschlüsselt wäre das system beim [...]

  • [C/C++] Borland 2006 & Mysql verbindung Passwort Problem
    Problem gelöst. [...]

  • mysql passwort ändern und dann in das acp steigen!
    hallo geht das auch ab version 2 das man in der datenbank das passwort ändert vom admin danach reinkommt ? bei mir funzt es ned 10ner bewertung für ne erklärung lg themark [...]

  • [RCE] Alt.Binz Passwort Verschlüsselung
    Vorwort: Ich möchte NICHT irgendwelche Passwörter klauen, sonder ein Tool zum automatischen eintragen von Servern in die Settings schreiben. Es geht um die Passwortverschlüsselung von Alt;Binz (;;;altbinz~net/) Soweit bin ich selbst gekommen: Die Daten werden in der "C:\Users\<USER>\AppData\Lo [...]



raid-rush.ws | Imprint & Contact pr