已经有最新的互通的加密解密方法请参考下面文章
在js中加密解密要用到下面三个js文件请先下载
文章后面有附件
下面是php端加密解密的代码函数/**
* aes加密
* @param [type] $text [加密文本]
* @param [type] $key [加密密钥]
* @param [type] $iv [加密密钥向量]
* @return [type] [description]
*/
function aesEncode($text, $key, $iv) {
$key = md5($key);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $text, MCRYPT_MODE_CBC, $iv);
return base64_encode($crypttext);
}
/**
* aes解密
* @param [type] $text [解密文本]
* @param [type] $key [解密密钥]
* @param [type] $iv [解密密钥向量]
* @return [type] [description]
*/
function aesDecode($text, $key, $iv) {
$key = md5($key);
return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($text), MCRYPT_MODE_CBC, $iv);
}
php的使用方法$text = '要加密的文本';
$key = 'aaaaaaaaaaaaaaaaaa'; //密钥,提示key的长度必须16,32位,这里直接MD5一个长度为32位的key
$iv = '1234567812345678'; //密钥向量
$encodestr = aesEncode($text, $key, $iv);
$decodestr = aesDecode($encodestr, $key, $iv);
js中aes的使用方法,首先记得引入上面三个js文件,使用下面两个函数/**
* js aes加密
* @param {[type]} text [文本]
* @param {[type]} key [密钥]
* @param {[type]} iv [密钥向量]
* @return {[type]} [description]
*/
var js_aesEncode=function(text,key,iv){
var key_hash = CryptoJS.MD5(key);
var key = CryptoJS.enc.Utf8.parse(key_hash);
var iv = CryptoJS.enc.Utf8.parse(iv);
var encrypted = CryptoJS.AES.encrypt(text, key, { iv: iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
return encrypted;
};
/**
* js aes解密
* @param {[type]} text [文本]
* @param {[type]} key [密钥]
* @param {[type]} iv [密钥向量]
* @return {[type]} [description]
*/
var js_aesDecode=function(text,key,iv){
var key_hash = CryptoJS.MD5(key);
var key = CryptoJS.enc.Utf8.parse(key_hash);
var iv = CryptoJS.enc.Utf8.parse(iv);
var decrypted = CryptoJS.AES.decrypt(text, key, { iv: iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
decrypted =decrypted.toString(CryptoJS.enc.Utf8);
return decrypted;
};
调用方法var key='aaaaaaaaaaaaaaaaaa';
var iv='1234567812345678';
var encrypted=js_aesEncode('Message',key,iv);
var decrypted=js_aesDecode(encrypted,key,iv);