首页 > 解决方案 > CryptoJS,如何从 js 解密(可能重复)到 python salt,iv,密文

问题描述

伙计们,我只是想知道是否可以在 python 中解密加密的 CryptoJS.AES.encrypt 但我们只有以下信息:

{"ciphertext":"UjKyYfL0SRdMXvHsHPCd07xseJwEeEYz4JOvmLq8v0dcrpm1urmIEiVcAibEbLJVGA6CVIKoMMN020d5Jf6gKkILrg+ksuMS9Zqp3lA2Pa0BwFs2s0EEL3f2QlpkyM8S","iv":"f7e8bcca7df619b31534b5f8a95852ae","salt":"127eba69048e97ad162b73b5184e9c4d9c59abf4c2a4d163955668065b74da9c3dbfe1fc32416941ce886029e97c8843846202675f1a53e3e8986cc20812a42ceac3f4241595ddcf25cc8a373b952c694d48342601b02f5a0499855c577306919c7b03570e86d187e78e415eb34969ea9701d144b72763f3e814e9032f975cdee382ecdff21a65cb1c3c744288b84442910259b69cfe7c7b99071b2b8a1417df5bfe766b99184a4f9cd193cb3c988be6b75eb84763c9c83b5553689a3e7e61e6be53e73e47ec45e277f84722faba069341acacb63bacd7b164550b04d39fb2516c14f86beb388af6feb9d0df45a1e60b2fcba50abd13bc65763d6dc8b1117cff","iterations":999}

javascript中的功能是:

var E = {
m: 256,
d: function(r, t) {
    var e = JSON.parse(CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(r)))
      , o = CryptoJS.enc.Hex.parse(e.salt)
      , p = CryptoJS.enc.Hex.parse(e.iv)
      , a = e.ciphertext
      , S = parseInt(e.iterations);
    S <= 0 && (S = 999);
    var i = this.m / 4
      , n = CryptoJS.PBKDF2(t, o, {
        hasher: CryptoJS.algo.SHA512,
        keySize: i / 8,
        iterations: S
    });
    return CryptoJS.AES.decrypt(a, n, {
        mode: CryptoJS.mode.CBC,
        iv: p
    }).toString(CryptoJS.enc.Utf8)
}
};

那么我该如何将它转换为python

标签: javascriptpythoncryptojs

解决方案


推荐阅读