encryption - CryptoJS AES 加密和解密
问题描述
首先,我有 2 个不同的系统 - 一个在 java 中,一个在 javascript 中。我有一个加密字符串(在 java 中完成),我也有用于加密它的 secretKey。我可以在 Javascript 中使用它来解密它。我知道解密结果是正确的。所以我不能改变解密逻辑。下面是解密代码:
decrypt = (value) => {
const cipher = CryptoJS.enc.Base64.parse(value);
const dec = CryptoJS.enc.Utf8.stringify(
CryptoJS.AES.decrypt(
{ ciphertext: cipher },
secretKey,
{ mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.NoPadding }
)
);
return dec;
};
我正在尝试加密上面的结果以在 javascript 中获取原始加密字符串。我试图做与解密时完全相反的事情。这是加密代码:
encrypt = (value) => {
var encrypted = CryptoJS.enc.Utf8.parse(
CryptoJS.AES.encrypt(
value, secretKey,
{ mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.NoPadding }
)
);
const cipher = CryptoJS.enc.Base64.stringify(encrypted);
return cipher;
}
我期待一个传入的原始字符串,但我没有得到相同的结果。
let decrypted = decrypt("LJalEgQ81qUjrVzhlgFNw==");
console.log("Decrypted:", decrypted);
encrypted = encrypt(decrypted);
console.log("Encrypted:", encrypted);
任何帮助表示赞赏。提前致谢。
解决方案
推荐阅读
- typescript - 如何将映射的泛型类型转换为打字稿中的元组联合
- class - 如果在 Dart 的不同文件中,继承的类不能使用主类方法
- node.js - 如何使用 vue-ssr-renderer 将服务器数据/上下文传递给 webpack 生成的 Vue SSR 应用程序?
- mysql - 根据混合日期填充缺失的行
- docker - 如何将 Docker 命名卷绑定到主机
- python - 在列表列表中查找最小值
- aws-lambda - 我可以在 AWS Lambda 中指定 Node.js 命令行选项吗?
- go - 用结构的字段指针填充切片
- python - Youtube 上传自动化和大文件
- reporting-services - SSRS 表达式 IIF() 和 sum