【发布时间】:2014-12-14 07:00:15
【问题描述】:
我正在编写一个单元测试,说明应该使用 bcrypt 对用户密码进行哈希处理。要断言这一点,我需要能够检查字符串是否看起来像 bcrypt 哈希。
我找不到一个函数来告诉我在字符串上使用了什么散列算法,除了正则表达式之外还有其他方法吗?
【问题讨论】:
-
我只需创建一个密码为“demo”的用户,然后检查用户密码是否为 61 个字符长
我正在编写一个单元测试,说明应该使用 bcrypt 对用户密码进行哈希处理。要断言这一点,我需要能够检查字符串是否看起来像 bcrypt 哈希。
我找不到一个函数来告诉我在字符串上使用了什么散列算法,除了正则表达式之外还有其他方法吗?
【问题讨论】:
@JimL soultion 有点限制,有一个问题是分解 bcrypt 哈希的结构。
$2a$[Cost]$[Base64Salt][Base64Hash]
因此,根据您的应用程序,您可以断言 bcrypt 标识符 $2a 和生成哈希的所需成本。
请参阅:https://stackoverflow.com/a/10933491/1722719 了解详细信息。
【讨论】: