首先,我有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);
感谢您的帮助。预先感谢。