使用AES方式用php和JS互相加密和解密
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-07-21 12:22:57
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
已经有最新的互通的加密解密方法请参考下面文章
https://www.zhaokeli.com/article/8324.html
在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);