简单的例子aes256 crypt [英] simple example aes256 crypt

查看:92
本文介绍了简单的例子aes256 crypt的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 
来自Crypto.Cipher import AES
x = AES.new(sdsfdsafsadfdsafasdfdsarwe876539 ,AES.MODE_CBC,2324234342342342)
打印x.decrypt(x.encrypt('abcdfghkbhgjrdfs'))


解决方案

因为 x 是一个带状态的对象。使用它来加密字符串会改变状态;再次使用它将产生不同的输出。



使用与加密时相同的初始状态的新AES密码:

 >>>来自Crypto.Cipher import AES 
>>>> key =sdsfdsafsadfdsafasdfdsarwe876539
>>> prefix ='2324234342342342'
>>> AES.new(key,AES.MODE_CBC,prefix).encrypt('abcdfghkbhgjrdfs')
'\xf4\xd9\xd1B8\xc1\x16\xe1\x9b〜\xd0\\ \\ x99\x1c\xf8\xdfn'
>>>> AES.new(key,AES.MODE_CBC,prefix).decrypt(_)
'abcdfghkbhgjrdfs'


Why this example doesn't work ?

from Crypto.Cipher import AES
x = AES.new("sdsfdsafsadfdsafasdfdsarwe876539", AES.MODE_CBC, "2324234342342342")
print x.decrypt(x.encrypt('abcdfghkbhgjrdfs'))

解决方案

Because x is an object with state. Using it to encrypt a string changes the state; using it again will generate different output.

Use a new AES cipher with the same initial state as you had when encrypting:

>>> from Crypto.Cipher import AES
>>> key= "sdsfdsafsadfdsafasdfdsarwe876539"
>>> prefix= '2324234342342342'
>>> AES.new(key, AES.MODE_CBC, prefix).encrypt('abcdfghkbhgjrdfs')
'\xf4\xd9\xd1B8\xc1\x16\xe1\x9b~\xd0\x99\x1c\xf8\xdfn'
>>> AES.new(key, AES.MODE_CBC, prefix).decrypt(_)
'abcdfghkbhgjrdfs'

这篇关于简单的例子aes256 crypt的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆