php aes加密js解密,使用AES方式用php和JS互相加密和解密

已经有最新的互通的加密解密方法请参考下面文章

在js中加密解密要用到下面三个js文件请先下载

文章后面有附件

e44e7000096713aec26639181eee54a5.png

下面是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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值