aes前台加密后台解密
生活随笔
收集整理的這篇文章主要介紹了
aes前台加密后台解密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
aes加密npm地址:https://www.npmjs.com/package/crypto-js
aes加密git地址/下載:?https://github.com/brix/crypto-js
直接上代碼:
前臺代碼:
/* * 加密*/function encrypt(str, key) {key = CryptoJS.enc.Utf8.parse(key ? key : "1111111111111111");// 秘鑰var iv = CryptoJS.enc.Utf8.parse('1234567890123412');//向量iv
var encrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
return encrypted.toString();
}
/**
* 解密
* @param str
*/
function decrypt(str) {
var key = CryptoJS.enc.Utf8.parse("1111111111111111");// 秘鑰
var iv = CryptoJS.enc.Utf8.parse('1234567890123412');//向量iv
var decrypted = CryptoJS.AES.decrypt(str, key, {iv: iv, padding: CryptoJS.pad.ZeroPadding});
return decrypted.toString();
}
//調用
//加密
console.log(CryptoJS.pad.ZeroPadding);
console.log(encrypt("123456"));
//解密
console.log(decrypt("123456"));
后臺php代碼:
<?php $privateKey = "1111111111111111"; //秘鑰$iv = "1234567890123412"; //向量$data = "******";//前臺加密的數據//解密$encryptedData = base64_decode($data);$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateKey, $encryptedData, MCRYPT_MODE_CBC, $iv);$decrypted = rtrim($decrypted, "\0"); //注意!解密出來的數據后面會出現六個紅點;這句代碼可以處理掉,從而不影響進一步的數據操作echo($decrypted);//解密數據echo "<hr>";
//加密測試與$data比對。
$data1 = "123456";//前臺需要加密的數據
echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data1, MCRYPT_MODE_CBC,$iv)); //加密的數據可以與前臺對比是一致的
注意:php后臺有很多框架,如果使用phalcon框架自已的aes加密時,前臺與后臺的iv是不同的,那么是不能解密的,請注意這一點
轉載于:https://www.cnblogs.com/xiaocaoer/p/8257780.html
總結
以上是生活随笔為你收集整理的aes前台加密后台解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试管婴儿的费用大概是多少
- 下一篇: 匆字开头的成语有哪些?