这是js代码
function encrypt (text, originKey) {
var originKey = originKey.slice(0, 16),
key = CryptoJS.enc.Utf8.parse(originKey),
iv = CryptoJS.enc.Utf8.parse(originKey),
msg = JSON.stringify(text)
var ciphertext = CryptoJS.AES.encrypt(msg, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return ciphertext.toString()
}
这是我的php代码
public function encrypt ($text, $keys){
$text = json_encode($text);
$text =$this->addPKCS7Padding($text);
$key = substr($keys,0, 16);
$iv = substr($keys,0, 16);
$encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);
return base64_encode($encrypt_str);
}
addPKCS7Padding函数的代码
、
public function addPKCS7Padding($source) {
$source = trim($source);
$block = mcrypt_get_block_size('rijndael-128', 'cbc');
$pad = $block - (strlen($source) % $block);
if ($pad <= $block) {
$char = bin2hex($pad);
$source .= str_repeat($char, $pad);
}
return $source;
}
这样加密出来的数据一直不对
更多请参考http://phpseclib.sourceforge.net