CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括: MD5 SHA-1 SHA-256 AES等,这里以AES和base64为例简单介绍一下使用方法。
下载安装
Node.js
1 | npm install crypto-js |
官网地址
‘https://code.google.com/p/crypto-js’
这个地址是需要翻墙才能下载
github
‘https://github.com/brix/crypto-js’
这里要提到的是,官网和github下载的文件略有差异,首先介绍官网下载的压缩包,分为rollups
和 components
两个文件夹。
- rollups下面是整合后的js,每一个可以单独通过js引用使用。
- componets下面刚包括所有的组件源码,以及各组件压缩后的js文件。
以AES为例:1
2
3
4
5<script src="rollups/aes.js"></script>
//or
<script src="components/core.js"></script>
<script src="components/cipher-core.js"></script>
<script src="components/aes.js"></script>
github上的js文件,和官网的components文件夹相同
使用
依赖node.js
npm安装后1
2var SHA256 = require("crypto-js/sha256");
console.log(SHA256("Message"));
官方文档和github都有详细说明,这里不过多介绍。
引入js文件
- aes
使用aes加密时,首先要定义密钥与盐1
2var key = CryptoJS.enc.Utf8.parse("5DquhGQAB9xdRUSp"); //密钥
var iv = CryptoJS.enc.Utf8.parse("szWDBBzTYBQX2apH"); //盐
由前台或者后台随机生成,之后定义加密和解密的方法1
2
3
4
5
6
7
8
9
10
11//加密
function Encrypt(word) {
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {iv: iv});
return encrypted.toString();
}
//解密
function Decrypt(word) {
var decrypt = CryptoJS.AES.decrypt(word, key, {iv: iv});
return decrypt.toString(CryptoJS.enc.Utf8);
}
- base64
base64加密和md5加密方式类似,直接调用加密即可1
2
3
4
5
6
7
8
9
10//加密
function EncryptBase64(word){
var str = CryptoJS.enc.Utf8.parse(word);
return CryptoJS.enc.Base64.stringify(str);
}
//解密
function DecryptBase64(word){
var words = CryptoJS.enc.Base64.parse(word);
return words.toString(CryptoJS.enc.Utf8);
}
最后来验证一下
1 | var word = JSON.stringify({ |