如何解决如何在angular 8中加密和解密json数据
试图使用crypto-js加密和解密json数据。但是没有用。如何找到解决方案。如果有人知道,请帮助找到解决方案。
演示:https://stackblitz.com/edit/angular-ivy-nwhkgz?file=src%2Fapp%2Fapp.component.ts
storageData=
[
{
"customerInfo": {
"Micheal": 1,"Milson": 2
},"mycart": {
"Ol1": 1,"Ol3": 1
},"cartItemsList": [
{
"pid": "Ol1","name": "Avacota","qty": 1
},{
"pid": "Ol3","name": "Kaliflower","qty": 1
}
],"cartTotal": 2
}
];
ngOnInit(){
//Encrypt Info
this.encryptInfo = encodeURIComponent(CryptoJS.AES.encrypt(this.storageData,'secret key 123').toString());
console.log("encryptInfo");
console.log(this.encryptInfo);
//Decrypt Info
var deData= CryptoJS.AES.decrypt(this.encryptInfo,'secret key 123');
this.decryptedInfo = decodeURIComponent(deData.toString(CryptoJS.enc.Utf8));
console.log("decryptedInfo");
console.log(this.decryptedInfo);
}
解决方法
首先:我不建议您在没有咨询精通密码学和网络安全的人的情况下,将其自己用于生产用途。
有两个错误使加密部分无法正常工作:
- 您尝试加密的数据不是字符串。您应该在加密之前序列化(字符串化)它。我在固定示例中使用JSON.stringify进行了此操作,后来在第51和59行使用JSON.parse对其进行了解析
- 您在加密后使用了encodeURIComponent,因此必须在解密之前完成encodeURIComponent。参见ln 58
这是固定的堆叠闪电战:https://stackblitz.com/edit/angular-ivy-h6zlcv?devtoolsheight=33&file=src/app/app.component.ts
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。