Je suis dans la position peu enviable où je dois maintenir des fonctionnalités avec une application ColdFusion existante. Dans le cadre de son processus de connexion, l'application Coldfusion stocke un cookie avec une chaîne cryptée.Déchiffrement/rechiffrement d'une chaîne cryptée ColdFusion dans PHP
encrypt(strToEncrypt, theKey, "AES", "Base64")
Je peux déchiffrer avec succès cette chaîne en PHP en utilisant MCrypt et le code suivant
mcrypt_decrypt(
MCRYPT_RIJNDAEL_128,
base64_decode($theKey),
base64_decode($encrypted_string),
MCRYPT_MODE_ECB, "0000000000000000")
J'ai maintenant la nécessité d'effectuer le même cryptage au sein de PHP afin que l'application ColdFusion peut accéder aux données le cookie.
Au moment ce que j'ai est
mcrypt_encrypt(MCRYPT_RIJNDAEL_128, base64_decode($theKey), $strToEncrypt, MCRYPT_MODE_ECB, "0000000000000000");
Ceci, cependant, est incompatible avec l'algorithme de cryptage équivalent ColdFusion
decrypt(strToDecrypt, theKey, "AES", "Base64")
Lancer une erreur Given final block not properly padded
.
Toute aide très appréciée.
James
Vous faites 'base64_encode()' le résultat de 'mcrypt_encrypt()'? – Tomalak
Consultez également les paramètres ivorsalt et itérations pour la fonction de chiffrement: http://www.adobe.com/livedocs/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00000457. htm –
@Tomalak Oui, le résultat de mcrypt_encrypt est codé en base64. – WeeJames