PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mcrypt encrypt und decrypt


Neo76
29.06.2006, 12:16:28
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.

$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.


$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

Neo76
30.06.2006, 13:36:16
Ich habe das Problem gelöst. Ich teile einfach das entschlüsselte Kennwort mit substr() Als Zeichenlänge gebe ich die Länge des eingegebenen Kennworts an.

Verstanden habe ich das Problem aber nicht.

Habe aber noch eine andere Frage. Wenn ich einen Text mit mcrypt verschlüssel, können hier Hochkommas und Anführungszeichen vorkommen, weshalb mein SQL-Statement dann nicht mehr passt.

where Kennwort = '@<*+'GT'

Wie kann ich das programmieren, dass der SQL-String nicht bei GT abgeschnitten wird ?

Chris