【发布时间】:2020-07-05 18:42:58
【问题描述】:
试图在 Angular 8 中通过 url 传递加密数据但由于加密数据包含 / 导致 url 无法正常打开而无法正常工作。那么如何在 Angular 8 中通过 url 传递加密数据。如果知道,请帮助任何人。
我们可以在没有特殊字符的情况下加密数据吗?有可能吗?
示例:U2FsdGVkX18+ijuMYTf/b2jVWBRoAGWMJ+AnFlwodjE= 这个数据有 / 所以 url 不会打开。如何解决此问题。
这样写:
let encriptionData = CryptoJS.AES.encrypt("test@gmail.com", 'secret key 123').toString();
我正在传递这样的加密数据
var url = "http://localhost:4200/content/" + encriptionData;
router.module.ts:
{ path : 'content/:id' , component : contentComponent },
content.component.ts:
//url is http://localhost:4200/content/U2FsdGVkX18+ijuMYTf/b2jVWBRoAGWMJ+AnFlwodjE=
this._Activatedroute.paramMap.subscribe(params => {
var bytes = CryptoJS.AES.decrypt(params.get('id'), 'secret key 123');
this.decryptedMailid = bytes.toString(CryptoJS.enc.Utf8);
console.log(this.decryptedMailid);
});
【问题讨论】:
-
如果可能,我建议您在更改路径之前对加密数据进行 url 编码
-
@ShamPooSham:如何加密没有特殊字符的数据?
-
您可以在加密数据上使用
encodeURIComponent -
@ShamPooSham:拜托..你能编辑我的代码吗?怎么办?
-
@ShamPooSham:如果我使用 encodeURIComponent 如何对其进行解码以进行解密?
标签: node.js typescript angular8 cryptojs