所以,如果有这样的事情,我正在尝试使用安全的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字符串,将数据返回到普通文本。
答案 0 :(得分:1)
当你用AES说盐时,你在具体谈论什么?这是IV到CBC还是CTR模式?它是用于生成密码短语(PBKDF2)的密钥生成的盐吗?
在任何一种情况下,盐都不会保密。 IV可以在明文中传输,并且使用散列方案,通常与散列一起存储(否则不可能第二次计算散列)。
我之前已经回答了为什么明确传输IV的安全性,你可以找到here。