【发布时间】:2017-04-01 14:35:51
【问题描述】:
我了解散列和加密之间的区别。我正在寻找一种在 Python 中实现加密/解密字符串的简单方法。我在网上找到的大多数方法都是关于使用散列算法(MD5 - SHA-1 等)来进行一种方法散列。但不幸的是,散列是不可逆的。有什么建议吗?
【问题讨论】:
-
为什么要恢复密码?如果您可以恢复它,那么坏人也可以。
-
不要加密密码,当攻击者得到数据库时,他也会得到加密密钥。使用随机盐在 HMAC 上迭代大约 100 毫秒,然后将盐与哈希一起保存。使用 password_hash、PBKDF2、Bcrypt 等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。
-
使用 AES(高级加密标准)加密字符串。
-
对于简单的加密,请使用加密库和 AES-CBC。如果您想深入研究,请编写您自己的 RC4 实现。现在已经过时/不安全,但可以让您从内部了解简单的流密码是如何工作的。
标签: python string encryption