我在 PHP 中使用加盐 sha1 创建散列密码。
我的问题是:在 MySQL 中,存储结果的正确字符编码、字段类型和长度是什么?
MySQL 中是否还有其他需要考虑的密码安全性? 最后,SHA256 或 SHA512 是实用的哈希选择吗?
最佳答案
SHA-2 算法(SHA-256、SHA-512)是有效的选择;但是它们需要更多存储空间。例如,要存储 SHA-256 的十六进制数字,您需要一个 CHAR(64) 字段。有一些关于 SHA-1 是否“损坏”的问题 Schneier discussed it和 NIST commented .如果您担心这些,那么最好使用 SHA-2 函数之一。
如果您想增加暴力攻击的成本,您还可以考虑使用 PBKDF2 等算法添加一些迭代。有人发布了一个例子 here in the comments .
关于mysql - 在 MySQL 中存储散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319588/