AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Delphi DEC Rijndael/AES zu PHP mcrypt
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi DEC Rijndael/AES zu PHP mcrypt

Ein Thema von jus · begonnen am 17. Jul 2015 · letzter Beitrag vom 17. Jul 2015
Antwort Antwort
jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#1

Delphi DEC Rijndael/AES zu PHP mcrypt

  Alt 17. Jul 2015, 00:51
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 "Rijnadel in Delphi nicht gleich wie das in PHP" gefunden. Leider arbeitet es im ECB Modus, was nicht ganz so sicher ist. Mein Frage ist, weiß jemand wie man das in CBC Modus einschließlich Padding verwendet?

Lg,
jus
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi DEC Rijndael/AES zu PHP mcrypt

  Alt 17. Jul 2015, 05:10
Hallo,
Suche mal nach LockBox (damals von TurboPower).


Heiko
Heiko
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Delphi DEC Rijndael/AES zu PHP mcrypt

  Alt 17. Jul 2015, 10:55
Ok. Nach einbißchen herumprobieren, denke ich, habe ich es hingekriegt.
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:
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;
Delphi Output:
Code:
6E9C9C3D1671348F99A30F350A734A1E28


Anbei der zugehörige PHP Code mit dem selben Output:
PHP-Quellcode:
$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);
PHP Output:
Code:
6e9c9c3d1671348f99a30f350a734a1e28
Weiters habe ich herausgefunden, dass wenn man unter DEC 5.2 in Delphi den Modus auf Mode := cmCBCx; umstellt und die Nachrichtenlänge ein vielfaches von 16Bytes groß ist, exakt den selben Output wie PHP generiert, wenn man in PHP auf $td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); 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.

Lg,
jus

Geändert von jus (17. Jul 2015 um 11:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz