Ich habe folgende Aufgabenstellung:
Ich habe eine ASP.Net-Webapplikation mit einem Login. Das Passwort wird bei der Registration mit RijndaelMemory verschlüsselt und in einer MSSQL Datenbank gespeichert. Der gespeicherte Hash hat eine Länge von 28bit.
Es ist nun gewünscht, dass die Webapplikation mit php nachgebaut werden soll. Dabei soll es - wenn irgend möglich - möglich sein, sich mit dem gleichen Password anzumelden (d.h. die Datenbank soll so weit als möglich unverändert bleiben).
Ich habe nun mit OpenSSL und mcrypt experimentiert, komme aber beim besten Willen nicht auf einen 28bit-Hash:
Hier mein Code:
Hiermit erhalte ich bei OpenSSL einen 64bit Hash und bei mcrypt einen Hash mit 44bit.
Ich habe viel gegoogelt, konnte aber leider nicht sehr viel brauchbares über Rijndeal Memory herausfinden und bin auch sonst nicht sehr versiert in Sachen verschlüsselung.
Kann mit hier jemand weiterhelfen?
PS: mir ist bewusst, das mcrypt 'deprecated' ist. Ich wollte nur testen, was ich damit für eine Ausgabe erhalten, bzw. inwiefern sich die Ausgabe von mcrypt von OpenSSL unterscheidet.
Ich habe eine ASP.Net-Webapplikation mit einem Login. Das Passwort wird bei der Registration mit RijndaelMemory verschlüsselt und in einer MSSQL Datenbank gespeichert. Der gespeicherte Hash hat eine Länge von 28bit.
Es ist nun gewünscht, dass die Webapplikation mit php nachgebaut werden soll. Dabei soll es - wenn irgend möglich - möglich sein, sich mit dem gleichen Password anzumelden (d.h. die Datenbank soll so weit als möglich unverändert bleiben).
Ich habe nun mit OpenSSL und mcrypt experimentiert, komme aber beim besten Willen nicht auf einen 28bit-Hash:
Hier mein Code:
PHP-Code:
// Test 'OpenSSL'
$key = openssl_random_pseudo_bytes(32);
$ivlen = openssl_cipher_iv_length($cipher="AES-256-CBC");
$iv = openssl_random_pseudo_bytes($ivlen);
$pw2 = openssl_encrypt($_POST['password'].$result[0]["PasswordSalt"], $cipher, $key, 0, $iv);
// Test 'mcrypt' (deprecated)
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); // MCRYPT_RIJNDAEL_128 + 32byte-Key = AES-256
$iv_m = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$pw3_cipher = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $_POST['password'].$result[0]["PasswordSalt"], MCRYPT_MODE_CBC, $iv_m);
$pw3 = base64_encode($pw3_cipher);
Ich habe viel gegoogelt, konnte aber leider nicht sehr viel brauchbares über Rijndeal Memory herausfinden und bin auch sonst nicht sehr versiert in Sachen verschlüsselung.
Kann mit hier jemand weiterhelfen?
PS: mir ist bewusst, das mcrypt 'deprecated' ist. Ich wollte nur testen, was ich damit für eine Ausgabe erhalten, bzw. inwiefern sich die Ausgabe von mcrypt von OpenSSL unterscheidet.
Kommentar