求大佬看下这段python加密怎么用js怎么写
import hashlib
from Crypto.Cipher import AES
from Crypto import Random
import base64
# 密钥
key = "8888888888"
# 对字符串进行Sha-256加密
def sha256(s):
return hashlib.sha256(s.encode()).hexdigest()[0:32]
# 用随机偏移量对字符串进行aes CBC PKCS5Padding 加密
def aes_encrypt(text):
secret_key = sha256(key)
print("secret_key===",secret_key)
pad = lambda s: s + (16 - len(s) % 16) * chr(16 - len(s) % 16)
text = pad(text) # 字符串补位
print("text===",text.encode())
iv = Random.new().read(AES.block_size)
print("iv===",iv)
cipher = AES.new(bytes.fromhex(secret_key), AES.MODE_CBC, iv)
encrypted_str = cipher.encrypt(text.encode()).hex()
print("encrypted_str===",encrypted_str)
str = iv.hex() + encrypted_str
print(base64.b64encode(bytes.fromhex(str), altchars=b'-_').decode())
if __name__ == '__main__':
aes_encrypt('{"name":"46566654"}')
AES/CBC/PKCS7PADDING 加密,加密后的hex放在iv的hex之后组合成新的字符,新的字符再解析为字节,字节用base64编码获得最后的加密数据
不知道对不对。