Funktionsweise von mcrypt_generic bei rijndael-256 und cbc
am 20.09.2006 10:06:57 von SharkyHallo,
ich versuche ein zur php Rijndael/AES Verschlüsselung kompatibles
Programm in Windows zu schreiben, welches von PHP verschlüsselten Text
wieder entschlüsseln soll.
Zunächst verwende ich keinen Initialisierungsvektor (bzw ein String
aus ascii-null) und verschlüssele einen Text (siehe unten).
Das Ergebnis stimmt aber nicht mit dem Verschlüsselten Text in meinem
Windows Programm überein. Dort wird im ersten Block in den ersten 4
Bytes die Länge des gesamten zu verschlüsselten Texts gespeichert, um
nacher die Füllzeichen im letzten Block wieder richtig entfernen zu
können.
Wie macht dies mcrypt_generic? Mit welchen Zeichen wird der Block
hinten aufgefüllt und wo wird die Nachrichtenlänge gespeichert?
Grüße und Dank,
Jens
$key = 'Key';
$string = 'Plain text';
$td = mcrypt_module_open('rijndael-256', '', 'cbc', '');
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = str_repeat(chr(0), $iv_size);
if (mcrypt_generic_init($td, $key, $iv) != -1) {
$c_t = mcrypt_generic($td, $string);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
}