我需要知道用于生成如下所示的密码哈希的算法:$2a$08$ztQUBr1vx97Rc9MiJVr05.LZWg92jGYkRFEJViHhfZjaWpB0xfgGu
在我看来,它看起来像 bcrypt,但当我使用脚本对密码进行哈希处理时,它们并不匹配。所以我相信在将密码存储在数据库之前,还对密码做了其他处理。它是盐吗?如果是,它是什么?
答案1
地穴(3)指出$2a$
前缀表示 Blowfish。OpenBSD地穴(3)提供了有关格式的更多详细信息。
如果你有一个支持 Blowfish 的 glibc,你基本上可以crypt()
自己调用,或者使用另一个可以做到这一点的程序。我发现密码检查器以便用于此目的。
要查看算法的详细信息,您可能需要参考实际的源代码。PHP 有一个版本墓穴和内置 Blowfish 支持,可以从其交互模式 ( php -a
) 轻松调用。如果这不起作用,您可能需要深入研究 ownCloud 源代码。