通过MySQL生成密码的pbkdf2_sha256哈希

时间:2013-07-03 01:09:52

标签: mysql hash sha

我有一堆散列密码pbkdf2_sha256$10000$0POUvc6y8M4z$QyldL9qyQO...。是否可以在SQL查询中验证它们?不要问为什么。

1 个答案:

答案 0 :(得分:0)

通常,数据库系统本身不支持这种哈希函数。无论如何都要编写查询很困难,因为密码哈希值是不可搜索的。要使用其哈希值验证密码,必须执行以下步骤:

  1. 按用户名搜索行(无法通过哈希值完成)。
  2. 从找到的行返回密码哈希。
  3. 从存储的密码哈希中提取用过的盐和成本因子。
  4. 使用相同的salt和cost因子从输入的密码构建新的哈希值。
  5. 比较存储的哈希值和新计算的哈希值。
  6. 这意味着,您首先必须知道存储的哈希值,然后才能使用它验证输入的密码。这种哈希函数肯定比在数据库中更好地放在开发语言中,特别是当您以后必须切换算法或成本因素并需要向后兼容时。