前端javascript用CryptoJS进行加密,然后对这个密文解密,为什么解密出来是空的?

发布于 2022-09-07 22:54:37 字数 1013 浏览 110 评论 0

前端javascript用CryptoJS进行加密,然后对这个密文解密,为什么解密出来是空的

下面是写的代码:

import CryptoJS from "crypto-js";

const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");
const iv = CryptoJS.enc.Utf8.parse("ABCDEF1234123412");

// 加密方法
function Encrypt (data) {
    let srcs = CryptoJS.enc.Utf8.parse(data);
    let encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.ciphertext.toString().toUpperCase();
}

// 解密方法
function Decrypt (data) {
    let encryptedHexStr = CryptoJS.enc.Hex.parse(data);
    let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    let decrypt = CryptoJS.AES.decrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}

export default {
    Encrypt,
    Decrypt
};

试过很多种方式,但是解密出来都是空的,求大神指教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往昔成烟 2022-09-14 22:54:37

我觉得你需要追踪一下函数调用是否成功。
解密是数据是否输入
先看加密输出是否有,是什么,再说解密的事情。
按理只要解密有数据输入怎么都应该有输出(可能是错误的)啊(除非没有输入)

https://www.jianshu.com/p/a47477e8126a有一个类似的代码,你可以参考。

邮友 2022-09-14 22:54:37

我试了一下能解出来,所以为什么你解出来是空的
http://jsfiddle.net/egbp7c95/3/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文