Bonjour
Pour faire communiquer une application delphi avec une application PHP, j'aimerai que les échanges soient cryptés.
J'ai trouvé un bout de code pour crypter coté PHP :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php function strtohex($x) { $s=''; foreach(str_split($x) as $c) $s.=sprintf("%02X",ord($c)); return($s); } $rkey = 'simple24characterkey1234'; $riv = 'simple16byteiv12'; $data = 'jan@laposte.net'; $data = mcrypt_cbc(MCRYPT_RIJNDAEL_128,$rkey,$data,MCRYPT_ENCRYPT,$riv); echo strtohex($data); ?>
Coté delphi j'ai trouvé sur le net comment crypter en passant par la librairie OpenstrsecII :
Les 2 bouts de code PHP et Delphi génèrent la même chaine de caractère, ça fonctionne pour crypter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 const KeySize = 32; // 256 bits BlockSize = 16; // 128 bits var lKey: AnsiString; lC: TCipher; lS: AnsiString; cle: AnsiString; begin lKey := 'simple24characterkey1234'; lS := 'jan@laposte.net'; lS := PadWithZeros(lS,BlockSize); // Pads a string with #0 UniqueString(lS); lC := TRijndael_CBC.Create(Pointer(lKey)^,Length(lKey),0); try lC.IVector := 'simple16byteiv12'; lC.Encrypt(Pointer(lS)^,Length(lS)); finally lC.Free; end; ShowMessage(BinToHex(Pointer(lS)^,Length(lS)));
Par contre comment décrypter coté Delphi? J'ai pas trouvé d'exemple sur le net pour la fonction Decrypt, j'ai bien essayé de faire quelque chose mais ça me retourne ceci :
Rien à voir avec l'adresse email de départ...96A785A8F6F17252430436EF44B84729887CB52F7F0DE3A63CFB03821E6FD3AF
Une idée de comment faire?
Merci d'avance![]()
Partager