项目中用到了一个js加密解密的算法——CryptoJS类库中是aes算法
CryptoJS类库是一个js类库,提供了各种各样的加密算法,加密的过程就是前端加密,到了服务器端逆向解密,是不是很简单?
加密算法有很多,aes(Advanced Encryption Standard--高级加密标准?美国联邦政府用的?然并卵~)
在引用了CryptoJS类库后,
1.要拿到一个key,如下代码:
key = CryptoJS.enc.Utf8.parse(key);
2.在向服务器端发送请求协议的时候,要加密:
private function encrypt(str:String):String
{
var encrypted:* = CryptoJS.AES.encrypt(str, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
// 转换为字符串
encrypted = encrypted.toString();
return encrypted;
}
3.客户端接收到服务器发送来的数据时要解密:
private function decrypt(base64String:String):String
{
var decrypted:* = CryptoJS.AES.decrypt(base64String, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
// 转换为 utf8 字符串
decrypted = CryptoJS.enc.Utf8.stringify(decrypted);
return decrypted;
}
mode(模式):用的是ECB,需要引入mode-ecb-min.js 文件
padding(补码方式):Pkcs7,需要引入pad-nopadding-min.js 文件