鍍金池/ 問(wèn)答/PHP  Linux  網(wǎng)絡(luò)安全  HTML/ 關(guān)于PHP7和CryptoJS的AES加密方式互通

關(guān)于PHP7和CryptoJS的AES加密方式互通

對(duì)于PHP7與CryptoJS的AES加密的方式互通代碼不能正確執(zhí)行,我的測(cè)試代碼為:

JS端:

let iv = CryptoJS.enc.Utf8.parse('1111111111111111');
let key = CryptoJS.enc.Utf8.parse('201707eggplant99')
console.log(CryptoJS.AES.encrypt(JSON.stringify({name:1}),key ,{
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.ZeroPadding,
    iv: iv
}).toString().toUpperCase())
//輸出:NZPBWAEV91QMVH67TQE+OA==

PHP端:

$privateKey = "201707eggplant99";
$iv =   "1111111111111111";
$encryptedData = base64_decode("NZPBWAEV91QMVH67TQE+OA==");
$decrypted = openssl_decrypt($encryptedData,"AES-128-CBC",$privateKey,OPENSSL_ZERO_PADDING ,$iv);
var_dump($decrypted);
//輸出:bool(false)

求解答,到底是哪兒出了問(wèn)題導(dǎo)致不能進(jìn)行互相加密與解密?

回答
編輯回答
厭遇

PHP去掉base64_decode,
JS里的CryptoJS去掉padding參數(shù) 后面去掉toUpperCase

2018年6月26日 05:01
編輯回答
扯不斷

去掉base64_decode函數(shù)

2017年12月16日 18:16