如何在AES CTR适用于Python和PyCrypto
答案:2 悬赏:40 手机版
解决时间 2021-02-19 19:11
- 提问者网友:温柔港
- 2021-02-19 13:12
如何在AES CTR适用于Python和PyCrypto
最佳答案
- 五星知识达人网友:低音帝王
- 2021-02-19 13:29
首先,AES-CTR的整点是,你并不需要填充。这是一个流密码(不同于ECB / CBC等)!
之所以出现这种行为,你在问题中所描述的是明文(4字节/ 32位)为四个小如AES(128位)的块大小。而到了crypto反对你只得到数据经过块大小后回来。所以,你的问题将通过实例化一个新的解决cryto对象,像这样:
counter = os.urandom(16) # fixed counter - do not use this in production!
key = os.urandom(32) # 256 bits key
encrypto = AES.new(key, AES.MODE_CTR, counter=lambda: counter)
encrypted = encrypto.encrypt("asdk")
# Instantiate a new cipher for decryption
decrypto = AES.new(key, AES.MODE_CTR, counter=lambda: counter)
print decrypto.decrypt(encrypted) # prints "asdk"
之所以出现这种行为,你在问题中所描述的是明文(4字节/ 32位)为四个小如AES(128位)的块大小。而到了crypto反对你只得到数据经过块大小后回来。所以,你的问题将通过实例化一个新的解决cryto对象,像这样:
counter = os.urandom(16) # fixed counter - do not use this in production!
key = os.urandom(32) # 256 bits key
encrypto = AES.new(key, AES.MODE_CTR, counter=lambda: counter)
encrypted = encrypto.encrypt("asdk")
# Instantiate a new cipher for decryption
decrypto = AES.new(key, AES.MODE_CTR, counter=lambda: counter)
print decrypto.decrypt(encrypted) # prints "asdk"
全部回答
- 1楼网友:神的生死簿
- 2021-02-19 14:06
额
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯