from Cryptodome.Util.Padding import unpad, pad
import execjs
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
def js_aes(text):
jscode = """
var o = require("crypto-js");
var u = o.enc.Utf8.parse("jo8j9wGw%6HbxfFn");
var d = o.enc.Utf8.parse("0123456789ABCDEF");
function p(t) {
var e = o.enc.Hex.parse(t)
, n = o.enc.Base64.stringify(e)
, a = o.AES.decrypt(n, u, {
iv: d,
mode: o.mode.CBC,
padding: o.pad.Pkcs7
})
, r = a.toString(o.enc.Utf8);
return r.toString()
}
"""
ctx = execjs.compile(jscode)
encrypto = ctx.call("p", text)
return encrypto
def py_aes(text):
key = b"jo8j9wGw%6HbxfFn"
cryptor = AES.new(key, AES.MODE_CBC, IV=b"0123456789ABCDEF")
ciphertext = cryptor.decrypt(a2b_hex(text))
return unpad(ciphertext, AES.block_size).decode()
text = ""
js_res = js_aes(text)
print(js_res)