crypto-js的使用
一、先下载安装依赖:
npm install crypto-js -s
二、使用
import CryptoJS from 'crypto-js'
// 1.消息摘要算法
var wordArray = CryptoJS.enc.Utf8.parse("66666"); // 字符串先转变为wordArray, 也可以不用转变,实际情况根据网站
var md5_str = CryptoJS.MD5(wordArray).toString(); // 加上.toString()由对象变成字符串
var sha1_str = CryptoJS.SHA1(wordArray).toString();
// DES, 3DES, RC4对称加密算法同理
var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
// 2.对称加密算法
// 2.1AES加密算法
var pwd = CryptoJS.enc.Utf8.parse("666666"); // 解析明文
var key = CryptoJS.enc.Utf8.parse("abcd1234"); // 解析秘钥
var iv = CryptoJS.enc.Utf8.parse("666666"); // 解析偏移向量, CBC模式下用到, ECB模式不用
var ciphertext = CryptoJS.AES.encrypt(pwd, key, {
mode: CryptoJS.mode.CBC, // 加密模式
padding: CryptoJS.pad.Pkcs7, // 填充方式
iv: iv // 偏移向量
}).toString();
alert(ciphertext)
// ciphertext结果为:p0h2lUuOAh4tmEN7FTLq8w==, base64的形式
// 2.2 AES解密算法, 必须为base64格式才能解密,如果为16进制,需要先转为base64
var key = CryptoJS.enc.Utf8.parse("abcd1234"); // 解析秘钥
var iv = CryptoJS.enc.Utf8.parse("666666"); // 解析偏移向量, CBC模式下用到, ECB模式不用
var ciphertext = CryptoJS.AES.decrypt("p0h2lUuOAh4tmEN7FTLq8w==", key, {
mode: CryptoJS.mode.CBC, // 加密模式
padding: CryptoJS.pad.Pkcs7, // 填充方式
iv: iv // 偏移向量
}).toString(CryptoJS.enc.Utf8);
alert(ciphertext)
/**
* CryptoJS 加密
*
* @param {String} encryptData 需要加密数据
* @returns 加密后的数据
* @memberof Utils
*/
export const encrypt = (encryptData) => {
var key = CryptoJS.enc.Utf8.parse('as-Crypto-js')
var srcs = CryptoJS.enc.Utf8.parse(encryptData)
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString()
}
/**
* CryptoJS 解密
*
* @param {String} encryptData 需要加密数据
* @returns 解密后的数据
* @memberof Utils
*/
export const decrypt = (encryptData) => {
var key = CryptoJS.enc.Utf8.parse('as-Crypto-js')
var decrypt = CryptoJS.AES.decrypt(encryptData, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
})
return CryptoJS.enc.Utf8.stringify(decrypt).toString()
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghaejc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13