MD5加密
过程:
1、下载
npm install ts-md5 --save
2、在需要的组件引入
import { Md5 } from 'ts-md5';
3、使用
console.log(Md5.hashStr('123456'));
crypto.js加密
没坑
crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。
git地址:https://github.com/brix/crypto-js
过程:
1、下载
npm install crypto-js
然后下载ts版本的包
npm install --save @types/crypto-js
2、在需要的组件引入
有多种引入方式,我放两个示例:
import { AES, mode, pad, enc, MD5 } from 'crypto-js';
import cryptoJs from 'crypto-js';
3、使用
多种使用方式,放个示例
// MD5
cryptoJs.MD5('123456').toString() // 一定要加toString()方法,否则得到的是一个对象
// AES加密
encryptByEnAES(data: string): string {
const Key = '12345612AC123456'; // 十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('6543216543216543'); // 十六位十六进制数作为密钥偏移量
// CryptoJS.enc.Utf8.parse 可以处理中文等复杂字符,并把字符串转成UTF8编码,可用可不用,用了更严谨
const tmpAES = AES.encrypt(data, Key, {
iv: iv,
mode: mode.CBC,
padding: pad.Pkcs7
});
return tmpAES.toString();
}
// AES解密
encryptByDeAES(data: string): string {
const Key = '12345612AC123456';
const iv = CryptoJS.enc.Utf8.parse('6543216543216543');
const tmpDeAES = AES.decrypt(data, Key, {
iv: iv,
mode: mode.CBC,
padding: pad.Pkcs7
});
return tmpDeAES.toString(enc.Utf8);
}
- key 密钥 值得注意的是密钥的长度,对称加密算法AES-128-CBC算法,数据采用 PKCS#7 填充 , 因此这里的 key需要为16位!
- iv 密钥偏移量
这两个参数前后端协定好保持一致,相当是前后端的秘密,不能被别人知道,不然加密就没意义了。
具体使用详情(官方文档)地址:https://cryptojs.gitbook.io/docs/
截图示例:
推荐博文(人家总结的很好):
http://www.dreamwu.com/post-2095.html
https://blog.csdn.net/weixin_44722527/article/details/118577835
https://www.jianshu.com/p/604960c569d2
https://blog.csdn.net/ahf29334/article/details/101636449