【发布时间】:2013-06-07 09:28:09
【问题描述】:
所以,如果有这样的事情,我正在尝试使用安全的 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 是一个字符串,数据以一串加密字符的形式出现。
使用解密,使用相同的盐字符串,将数据返回为普通文本。
【问题讨论】:
-
“盐”是什么意思?您是否要对密码进行加盐以生成 AES 密钥?
-
如果不知道您使用的是什么
encrypt方法,这有点难以分辨。我似乎错过了注入密钥或密码的部分。 salt 通常仅用于基于密码的密钥派生函数 (PBKDF) 或 - 对于不太安全的实现 - 加盐哈希值。
标签: encryption aes salt