【发布时间】:2020-11-03 19:27:52
【问题描述】:
我遇到了一个令我大吃一惊的问题。我有两段相同的代码,唯一的区别是我在其中一个函数中包装了一个调用(我将在我的类中经常使用),而另一个是显式的。好吧,一个有效,而另一个无效。
这很好用:
public testSymmetricEncryption(): void {
const original = 'Understanding at the alpha quadrant that is when conscious klingons yell.';
const password = 'myPassword';
const encrypted = CryptoJS.AES.encrypt(original, password).toString();
const decrypted = CryptoJS.AES.decrypt(encrypted, password).toString(CryptoJS.enc.Utf8);
console.log('Test symmetric encryption', {original, password, encrypted, decrypted});
}
而另一个不起作用(没有给出解密值,即''),有时甚至是Error: Malformed UTF-8 data 异常:
public testSymmetricEncryption(): void {
const original = 'Understanding at the alpha quadrant that is when conscious klingons yell.';
const password = 'myPassword';
const encrypted = this.encryptSymmetric(original, original);
const decrypted = this.decryptSymmetric(encrypted, password);
console.log('Test symmetric encryption', {original, password, encrypted, decrypted});
}
public encryptSymmetric(value: string, password: string) {
return CryptoJS.AES.encrypt(value, password).toString();
}
public decryptSymmetric(encrypted: string, password: string) {
return CryptoJS.AES.decrypt(encrypted, password).toString(CryptoJS.enc.Utf8);
}
有人知道为什么会这样吗?
【问题讨论】:
标签: javascript typescript cryptojs