Ich habe ein Problem mit dem entschlüsseln von Daten über mcrypt.
Ich habe in meinem Script das Beispiel verwendet, dass immer wieder in den Dokus auftaucht. Über eine Eingabeseite werden die Daten in eine Datenbank geschrieben. Das Kennwort wird dabei verschlüsselt.
PHP-Code:
$key="My Key";
$text="eingegebenes Kennwort";
// Verschlüsseln (Enrypt)
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
Bis dahin funktioniert alles ganz normal. Auf der Anmeldeseite soll nun das verschlüsselte Kennwort ausgelesen, entschlüsselt und mit dem eingebenen verglichen werden.
PHP-Code:
$key="My Key";
$text="ausgelesenes Kennwort aus DB";
// Entschlüsseln (Decrypt)
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
Wenn ich nun die beiden Kennwörter vergleiche, funktioniert es nicht. Ich habe als Kennwort mal test verwendet und mir immer die Zeichenlängen mit ausgeben lassen.
Wenn ich das Kennwort entschlüsselt habe, steht hier "test". Hat aber 32 Zeichen. Kann es daran liegen ?
Ich habe es auch schon mal gedreht, dass ich das eingegebene Kennwort verschlüsselt habe und dann mit dem DB-Kennwort verglichen habe. Funzt aber auch nicht.
Danke Chris