从加密文本和未加密文本中获取AES“salt”

时间:2013-06-11 13:42:52

标签: encryption aes salt

所以,如果有这样的事情,我正在尝试使用安全的python编程:D)。这是现实世界的一半项目,只有一半是训练。所以理论和实践建议都值得赞赏。

我正在使用AES加密的加密脚本,以某种方式加密文本......

data = "hello"
encrypted_text = encryption(data, salt_word)
print encrypted_text (responds with "huio37*\xhuws%hwj2\xkuyq\x#5tYtd\xhdtye")
plain_text =  decryption(encrypted_text, salt_word)
print plain_text (responds with "hello")

问题:如果您知道“encrypted_text”和“plain_text”的值...可以反向设计“salt_word”。如果是这样,它有多难(在PC上12秒,或在Cray上20年?)

从AES的整个角度来看,我的理解是,不,你不能。但我只是不那么熟悉。


我在这里使用了一个微不足道的修改版本的脚本: Encrypt / decrypt data in python with salt

基本上,它使用“salt”来加密“数据”。 salt是一个字符串,数据以加密字符串形式出现。

使用decrypt,使用相同的salt字符串,将数据返回到普通文本。

1 个答案:

答案 0 :(得分:1)

当你用AES说盐时,你在具体谈论什么?这是IV到CBC还是CTR模式?它是用于生成密码短语(PBKDF2)的密钥生成的盐吗?

在任何一种情况下,盐都不会保密。 IV可以在明文中传输,并且使用散列方案,通常与散列一起存储(否则不可能第二次计算散列)。

我之前已经回答了为什么明确传输IV的安全性,你可以找到here