Bonjour a tous,
Je suis coincé avec la fonction crypteStandard et une api qui décrypte avec openssl_decrypt
coté Windev dans l'expression la plus simple:
Coté php toujours dans l’expression la plus simple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 "{ "compteID":40 }" // chaine de test bufConsumer est un Buffer = ChaîneVersUTF8("6B343EE61E4391F6B3D2D701B5723B0D50A981E085A3B416CF7AD09A8049BF73"); bufValeur est un Buffer = ChaîneVersUTF8(cValeur) chaineCrypte est un Buffer = CrypteStandard(bufValeur, bufConsumer[[À 32]], crypteAES256,crypteCBC,cryptePaddingZéro) RENVOYER Encode(chaineCrypte,encodeBASE64)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $data = base64_decode($request->get('data')); $iv_size = openssl_cipher_iv_length('AES-256-CBC'); $consumer = '6B343EE61E4391F6B3D2D701B5723B0D50A981E085A3B416CF7AD09A8049BF73'; $IV = substr($data,0 , $iv_size); $data = substr($data, $iv_size); $chaine = openssl_decrypt($data,'AES-256-CBC', substr($consumer, 0, 32), OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $IV);
Mon résultat de décodage est plutôt surprenant:
[2019-07-14 16:47:23] local.DEBUG: array (
'data' => 'DCglypTepxa2cLtbSDWe543072lU6qZ5NRT4WtCYVySO07Kr',
'IV' => 'KDWuAm20W+SZHV5s',
'decrypter' => '1����-#.���d�`i�C�N����L\'�����V�P��}G�q
�(',
'error' => false,
)
j'effectue les mêmes tests coté .net avec le même mode cryptage AES-256-CBC et cela fonctionne.
Je pense que coté Windev je dois certainement oublié une conversion de type avant mon appel.
Merci pour votre aide.
Partager