pgcrypto 和密码哈希

pgcrypto 和密码哈希

我正在考虑如何在 Postgres 中存储密码的选择。

其中一个选项是使用pgcrypto。阅读他们的文档,我发现他们的cryptgen_salt函数不使用 sha256,而是使用加密破解的自定义版本md5。既然它不安全,为什么 Postgres 开发人员会为其密码存储模块使用这样的哈希算法?

我想我应该使用,而不是损坏的(至少在我看来)pgcrypto模块,内置二进制函数 sha256和随机盐一起。

答案1

使用好的密码哈希值可以降低猜测速度。如果您希望保持加密目前最好的 crypt() 是 bf,又名基于 Blowfish 的 bcrypt

或者选择一个替代方案密码学家所熟知并且有经过良好测试的实现。请注意,这可能在应用程序代码中。crypt() 作为 DBMS 函数很方便,但不是必需的。

随意破解您自己的密码哈希值,以显示每秒猜测多少次是可行的。

由于 PostgreSQL 比较老,所以存在过时的 md5 和 des 算法。密码哈希值仍然存在于某个表中,尚未更新,因为其用户多年没有登录。

我想我应该使用内置的二进制函数 sha256 和随机盐,而不是损坏的(至少在我看来)pgcrypto 模块。

不要使用自己的密码哈希算法。sha256 是一种快速哈希算法,与密码所需的哈希算法相反。

相关内容