Python中的密码加密和解密
Posted
技术标签:
【中文标题】Python中的密码加密和解密【英文标题】:Password encryption and decryption in Python 【发布时间】:2017-04-01 14:35:51 【问题描述】:我了解散列和加密之间的区别。我正在寻找一种在 Python 中实现加密/解密字符串的简单方法。我在网上找到的大多数方法都是关于使用散列算法(MD5 - SHA-1 等)来进行一种方法散列。但不幸的是,散列是不可逆的。有什么建议吗?
【问题讨论】:
为什么要恢复密码?如果您可以恢复它,那么坏人也可以。 不要加密密码,当攻击者得到数据库时,他也会得到加密密钥。使用随机盐在 HMAC 上迭代大约 100 毫秒,然后将盐与哈希一起保存。使用 password_hash、PBKDF2、Bcrypt 等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。 使用 AES(高级加密标准)加密字符串。 对于简单的加密,请使用加密库和 AES-CBC。如果您想深入研究,请编写您自己的 RC4 实现。现在已经过时/不安全,但可以让您从内部了解简单的流密码是如何工作的。 【参考方案1】:你可能做错了什么。
如果您不想让攻击者访问存储在数据库中的所有密码,则不应反转哈希来恢复密码并将其与输入进行比较。您应该对输入进行哈希处理并将其与哈希密码进行比较。
但也许你不是。
也许您仍然想加密某些东西,以便以后可以解密它。有一个名为 PyCrypto 的模块可以帮助您解决此问题,它实现了大量独特且强大的算法,以允许安全传输或存储敏感数据。
【讨论】:
以上是关于Python中的密码加密和解密的主要内容,如果未能解决你的问题,请参考以下文章