gpt4 book ai didi

python - AES解密计数器模式

转载 作者:行者123 更新时间:2023-12-01 05:57:52 25 4
gpt4 key购买 nike

我有一个 64 个字符的字符串。前 32 个字符代表 IV,后 32 个字符是加密消息。每个字符代表 4 位,因此我必须成对解释该字符串才能获得单个字节。

我想做的是复制反模式解密的工作原理。据我了解这个过程,我应该能够将我的密文与 IV 的加密进行异或,这应该会产生纯文本。 (请注意,我的密文 = 16 字节 = 一个 block ,因此我相信这里不需要填充或递增 IV。)

无论我如何执行此操作,我都无法输出任何清晰的内容。我认为我的问题是我如何加密我的 IV,但我不确定。我一直在攻击这个,但毫无进展。谁能看到我做错了什么吗?这是我编写的代码:

def decryptCTR(key, ciphertext):
IV = ciphertext[:32]
C0 = ciphertext[32:64]
#convert into 16 byte strings
key = array.array('B', key.decode("hex")).tostring()
IV = array.array('B', IV.decode("hex")).tostring()

# ENCRYPT iv with the key
encodeAES = lambda c, s: base64.b64encode(c.encrypt(s))
cipher = AES.new(key, AES.MODE_CFB)
encryptedIV = encodeAES(cipher, IV)

#xor the encrypted iv with the ciphertext block
print "XOR: " + strXOR(encryptedIV, C0)

return

最佳答案

答案确实很简单:不要加密 IV。 IV 应以明文形式发送。

关于python - AES解密计数器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11704966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com