mysql - 在 MySQL 中存储散列密码

标签 mysql passwords hash

我在 PHP 中使用加盐 sha1 创建散列密码。

我的问题是:在 MySQL 中,存储结果的正确字符编码、字段类型和长度是什么?

MySQL 中是否还有其他需要考虑的密码安全性? 最后,SHA256 或 SHA512 是实用的哈希选择吗?

最佳答案

SHA-2 算法(SHA-256、SHA-512)是有效的选择;但是它们需要更多存储空间。例如,要存储 SHA-256 的十六进制数字,您需要一个 CHAR(64) 字段。有一些关于 SHA-1 是否“损坏”的问题 Schneier discussed itNIST commented .如果您担心这些,那么最好使用 SHA-2 函数之一。

如果您想增加暴力攻击的成本,您还可以考虑使用 PBKDF2 等算法添加一些迭代。有人发布了一个例子 here in the comments .

关于mysql - 在 MySQL 中存储散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319588/

相关文章:

mysql - 将多个 mysql 查询作为 1 个查询运行

mysql - 删除数据库中除最后日期以外的所有项目

mysql - 使用 MySQL 创建循环排列的优雅方法

php - 如何最好地存储用户信息和用户登录名和密码

java - Java/Scala 中的高性能字符串哈希函数

php - 如何在 PHP 中从 sql 表填充下拉菜单

php - 将密码插入数据库,与常规文本字段有什么区别?

php - 检索 redis 哈希数据

javascript - md5 递增地哈希一个大文件?

windows - 验证用户详细信息和自动登录 Windows