Я выполняю некоторое шифрование в API, и у меня возникают проблемы с шифрованием AES с использованием CryptoJS
и openssl_decrypt
в PHP
.
JS
var key = "B-LOGIN",
iv = "c5b8cfc6992807e2c78a8cda6193bca1",
json = JSON.stringify({email : "example@example.com", password: "123456", "domainUrl" : "http://www.example.com/"}),
enc = CryptoJS.AES.encrypt(
JSON.stringify({email : "example@example.com", password: "123456", "domainUrl" : "http://www.example.com/"}),
CryptoJS.enc.Utf8.parse(key),
{ iv: CryptoJS.enc.Utf8.parse(iv.substring(0, 16)) }
);
console.log( enc.ciphertext.toString() ); // b53284ed65e1810b7250e2760d10f3be2b31e188f356dd36da5e906c59bea877b2cd322cfb1228035c4a06920e2504657beaa2440c94f5ff7dd6485be7b7bbd82d5e91f22d64c98322a47b0413d4b724b0e2cbf2314472b6f72b4e19a5e44052
PHP
Для расшифровки в php у меня есть следующий код, и он дает мне ложь в $rawText
.
$iv = "c5b8cfc6992807e2";
$str = "b53284ed65e1810b7250e2760d10f3be2b31e188f356dd36da5e906c59bea877b2cd322cfb1228035c4a06920e2504657beaa2440c94f5ff7dd6485be7b7bbd82d5e91f22d64c98322a47b0413d4b724b0e2cbf2314472b6f72b4e19a5e44052";
$rawText = openssl_decrypt( $str,'aes-128-cbc' , 'B-LOGIN', 0, (strlen($iv) > 16 ? substr($iv, 0 ,16) : $iv) ); // close
Я думаю, CryptoJS
это дает ответ в шестнадцатеричном формате.
Заранее спасибо.