通过MySQL生成密码的pbkdf2_sha256哈希

通过MySQL生成密码的pbkdf2_sha256哈希,mysql,hash,sha,Mysql,Hash,Sha,我有一堆散列密码pbkdf2_sha256$10000$0POUvc6y8M4z$QyldL9qyQO…。可以在SQL查询中验证它们吗?不要问为什么。通常数据库系统本身不支持这种散列函数。无论如何,编写查询是很困难的,因为密码哈希是不可搜索的。要使用哈希值验证密码,需要执行以下步骤: 按用户名搜索行(不能通过哈希值完成) 从找到的行返回密码哈希 从存储的密码哈希中提取用过的盐和成本因子 使用相同的salt和cost factor从输入的密码构建新的哈希值 比较存储的哈希值和新计算的哈希值 这意味

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

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

  • 按用户名搜索行(不能通过哈希值完成)
  • 从找到的行返回密码哈希
  • 从存储的密码哈希中提取用过的盐和成本因子
  • 使用相同的salt和cost factor从输入的密码构建新的哈希值
  • 比较存储的哈希值和新计算的哈希值

  • 这意味着您首先必须知道存储的哈希值,然后才能使用它验证输入的密码。这种散列函数在开发语言中的位置肯定比在数据库中的位置更好,尤其是当您以后必须切换算法或成本因素并需要向后兼容时。

    为什么不问问为什么?为什么?我可以通过python获得这个散列,但我必须在MySQL中获得它。为什么?在MySQL中可能无法有效地执行此操作。尝试使用lib_mysqludf_sys module+外部脚本。。。