我正在尝试使用CryptoJS AES,如下所示:
var msg = "café";
var key = "something";
var c = CryptoJS.AES.encrypt(msg, key).toString();
CryptoJS.AES.decrypt(c, key).toString(CryptoJS.enc.Latin1);
不幸的是,这会返回café
,而不是café
。显然,Latin1不是正确的编码,但我找不到更好的编码。有解决方案吗?
感谢。
答案 0 :(得分:-2)
您尝试将数据解密为Latin1字符串,即使您的输入字符串不在Latin1中。内部使用CryptoJS的编码与用于编写输入文件的编码不同。
您需要在加密时(对于字符串 - >字节数组转换)和解密时(对于字节数组 - >字符串转换)指定相同的编码。