gpt4 book ai didi

python - Pycrypto:递增 AES 计数器模式

转载 作者:行者123 更新时间:2023-11-30 23:41:59 25 4
gpt4 key购买 nike

我真的很困惑如何使用计数器模式在 pycrypto 中进行 AES 解密。据我了解这个过程,如果我从已知的 IV 开始解密第一个 block ,那么对于每个连续的 block ,我必须增加 IV。但我不知道该怎么做。

此外,正如您很容易看到的那样,我对 python 完全陌生。我的问题在于我如何实现我的类以及如何从解密器调用它。

这是我迄今为止编写的代码:

class IVCounter(object):
def incrIV(self):
return self[:15] + chr(ord(self[15:]) + 1)

def decryptCTR(key, ciphertext):

#convert the key into a 16 byte string
key = array.array('B', key.decode("hex")).tostring()

#convert the iv into a 16 byte string
iv = array.array('B', iv.decode("hex")).tostring()

print AES.new(key, mode, counter=IVCounter.incrIV(iv)).decrypt(ciphertext)
return

这是我收到的错误:

TypeError: unbound method incrIV() must be called with IVCounter instance as first argument (got str instance instead)

无论我如何尝试,我都无法让它发挥作用。有人可以帮我理清思路吗?

谢谢!

最佳答案

class IVCounter(object):
@staticmethod
def incrIV(arry):
return arry[:15] + chr(ord(arry[15:]) + 1)

它提示是因为它期望第一个参数是一个实例。使用 staticmethod 装饰器将其关闭。

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

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