当前位置:网站首页>crypto-js使用
crypto-js使用
2022-08-01 05:28:00 【大海里没有水】
crypto-js使用 :
const cryptoJs = require('crypto-js')
function getKey(key = "1234123412341234") {
return cryptoJs
.SHA1(cryptoJs.SHA1(key))
.toString()
.substring(0, 32);
}
function aesEncrypt(data, key) {
console.log('加密之前的data:', data+' key:'+ key + ' 真实的key:'+ getKey(key));
const KEY = cryptoJs.enc.Hex.parse(getKey(key));
const IV = cryptoJs.enc.Hex.parse(getKey(key));
if (typeof data === "object") {
try {
data = JSON.stringify(data);
} catch (error) {
console.log("加密失败:", error);
}
}
let encrypt = cryptoJs.AES.encrypt(
data,
KEY,
{
iv: IV,
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
}
);
console.log("加密之后的数据:", encrypt.ciphertext.toString());
return encrypt.ciphertext.toString();
}
function aesDecrypt(data, key) {
console.log('解密之前的data:', data+' key:'+ key + ' 真实的key:'+ getKey(key));
const KEY = cryptoJs.enc.Hex.parse(getKey(key));
const IV = cryptoJs.enc.Hex.parse(getKey(key));
let str = cryptoJs.enc.Base64.stringify(cryptoJs.enc.Hex.parse(data));
let decrypt = cryptoJs.AES.decrypt(
str,
KEY,
{
iv: IV,
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
}
);
console.log('解密后的数据:', decrypt.toString(cryptoJs.enc.Utf8).toString())
return decrypt.toString(cryptoJs.enc.Utf8);
}
let obj = {
name: '狠人大帝'
}
let a = aesEncrypt(obj, '45674567456745674567')
console.log('加密后的a====', a);
let a1 = aesDecrypt(a, '45674567456745674567')
console.log('解密后的a1', a1)
// export { aesEncrypt, aesDecrypt };
边栏推荐
猜你喜欢
牛客多校2022第四场A,H,K,N
移动应用恶意攻击激增500% 三六零天御为APP免费构建安全屏障
可视化全链路日志追踪
七、MFC序列化机制和序列化类对象
小心你的字典和样板代码
2022.7.26 Mock Competition
About making a progress bar for software initialization for Qt
MySQL-DML language-database operation language-insert-update-delete-truncate
从离线到实时对客,湖仓一体释放全量数据价值
AspNet.WebApi.Owin custom Token request parameters
随机推荐
pytroch、tensorflow对比学习—搭建模型范式(构建模型方法、训练模型范式)
MySQL-Data Definition Language-DDLdatebase define language
vim配置+ctag像source insight一样方便阅读代码
【MySQL必知必会】 表的优化 | 充分利用系统资源
Selenium:弹窗处理
USB3.0:VL817Q7-C0的LAYOUT指南(二)
PAT serie b write the number 1002
Selenium: mouse, keyboard events
pytroch、tensorflow对比学习—使用GPU训练模型
Solve the problem of page flicker caused by browser scroll bars
请求/响应拦截器写法
WebSocket实现聊天功能
Seleniu:元素常用操作
(2022 Nioke Duo School IV) D-Jobs (Easy Version) (3D prefix or)
Selenium: Manipulating Cookies
Selenium: Dropdown Box Actions
(2022牛客多校四)H-Wall Builder II(思维)
零序电流继电器器JL-8C-12-2-2
[target detection] YOLOv7 theoretical introduction + practical test
WPF项目-初步了解数据绑定 binding