【发布时间】:2014-08-07 02:33:36
【问题描述】:
我确实将我的密码作为 bcrypt 哈希存储在 MySQL 数据库中。使用 MD5 和 SHA1 可以在数据库中运行散列函数。现在我想知道是否可以在 MySQL 中运行 bcrypt。我想在数据库中创建用户帐户。
我在manual 中找不到它还是我错过了它?也许作为存储过程?
【问题讨论】:
标签: mysql stored-procedures hash passwords bcrypt
我确实将我的密码作为 bcrypt 哈希存储在 MySQL 数据库中。使用 MD5 和 SHA1 可以在数据库中运行散列函数。现在我想知道是否可以在 MySQL 中运行 bcrypt。我想在数据库中创建用户帐户。
我在manual 中找不到它还是我错过了它?也许作为存储过程?
【问题讨论】:
标签: mysql stored-procedures hash passwords bcrypt
一旦您为每个密码使用了唯一的盐(并将其与密码一起保存),您将无法在单个 SQL 语句中进行验证,尤其是在使用慢哈希函数时。
在第一步中,我们应该通过用户名进行查询以获取哈希值(和盐),然后在第二步中,我们可以使用此哈希值和相同的盐来验证输入的密码。如果您尝试在单个 SQL 语句中执行此操作,数据库将不得不计算每一行的哈希,直到找到匹配项,使用像 BCrypt 这样的慢哈希函数,此查询会使您的服务器过载。
【讨论】: