python aes加密 cbc_Python AES-256 & CBC 解密求助

1.将十六进制密文转换为二进制密文。

2.按照 密文结构 数据格式中所述拆分字段,获取 随机加密盐 (encryptionSalt)、 随机 HMAC 盐 (HMACSalt)、 初始化向量 (IV)、CBC 模式密文 (ciphertext)。

3.使用 PBKDF2 算法生成 加密密钥 (cipherKey)。将字符串格式的 密文(电渠分配) 和 随机加密盐 (encryptionSalt)使用 SHA­1 PRF 算法进行 10000 次迭 代,得到 加密密钥 (cipherKey)。长度为 32 字节。

4.使用 PBKDF2 算法生成 HMAC 密钥 (hmacKey )。将字符串格式的 密文(电渠分配) 和 随机 HMAC 盐 (HMACSalt)使用 SHA­1 PRF 算法进行 10000 次迭 代,得到 HMAC 密钥 (hmacKey )。长度为 32 个字节。

5.使用 加密密钥 (cipherKey)和 HMAC 密钥 (hmacKey ),以及 初始化向量 (IV),用 AES­256 和 CBC 模式进行解密。得到 原文 。

哪位大神知道如何用 Python3 解密这种步骤的密文

有个抽象语言的解密步骤根本看不懂

def Decrypt(Password, Message) = (Version,Options,EncryptionSalt,HMACSalt,IV,Ciphertext,HMAC) = Split(Message) EncryptionKey = PKBDF2(EncryptionSalt, 32 length, 10k iterations, Password) HMACKey = PKBDF2(HMACSalt, 32 length, 10k iterations, password)

Header = 3 || 1 || EncryptionSalt || HMACSalt || IV

Plaintext = AES256Decrypt(Ciphertext, ModeCBC, IV, EncryptionKey) ComputedHMAC = HMAC(Header || Ciphertext, HMACKey, SHA-256)

if ConsistentTimeEqual(ComputedHMAC, HMAC) return Plaintext else return Error

跪谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值