![]() |
Delphi DEC Rijndael/AES zu PHP mcrypt
Hallo,
ich möchte mit der DEC 5.2 AES/Rijndael verschlüsseln und auf einem PHP Server die Nachricht entschlüsseln. Es geht um eine Registrierungsfunktion. Eine funktionierende Lösung habe in einem älteren Beitrag " ![]() Lg, jus |
AW: Delphi DEC Rijndael/AES zu PHP mcrypt
Hallo,
Suche mal nach LockBox (damals von TurboPower). Heiko |
AW: Delphi DEC Rijndael/AES zu PHP mcrypt
Ok. Nach einbißchen herumprobieren, denke ich, habe ich es hingekriegt. :-D
Für den Fall, dass einer auch mal von Delphi DEC Rijndael 128bit verschlüsselt zu PHP was schicken möchte. Die einfachste Möglchkeit ist, wenn man den CFB 8-bit Modus verwendet.
Delphi-Quellcode:
Delphi Output:
procedure TForm1.Button1Click(Sender: TObject);
begin with TCipher_Rijndael.Create do try Mode := cmCFB8; Init('terertertererfrt', #0, $00); Memo1.Lines.Add(EncodeBinary('wertzuioplkjhgfd1', TFormat_HEX)); finally Free; end; end;
Code:
6E9C9C3D1671348F99A30F350A734A1E28
Anbei der zugehörige PHP Code mit dem selben Output:
PHP-Quellcode:
PHP Output:
$string = 'wertzuioplkjhgfd1';
$key = 'terertertererfrt'; $td = mcrypt_module_open('rijndael-128', '', 'cfb', ''); $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); } echo bin2hex($c_t);
Code:
Weiters habe ich herausgefunden, dass wenn man unter DEC 5.2 in Delphi den Modus auf
6e9c9c3d1671348f99a30f350a734a1e28
Delphi-Quellcode:
umstellt und die Nachrichtenlänge ein vielfaches von 16Bytes groß ist, exakt den selben Output wie PHP generiert, wenn man in PHP auf
Mode := cmCBCx;
PHP-Quellcode:
umstellt. Sprich, wenn man sich selber um das Padding kümmert, und zwar den letzten Block immer auf 16Bytes auffüllt, könnte man auch den CBC Modus mit der Blockgrösse 16Bytes verwenden, was vielleicht bei großen Datenmengen performanter sein kann.
$td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
Lg, jus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz