使用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);