配置 htpasswd 以使用自定义哈希算法根据现有数据库验证用户

Configure htpasswd to verify user against existing database with custom hashing algorithm

我有一个用户数据库1,其中密码按以下方式加盐和散列:

hash = md5(md5(password) + salt)

我想为这个数据库中的任何用户创建私人目录,我设想通过将 .htpasswd 配置为对这些目录进行私人用户身份验证来实现。我研究了几种方法来解决这个问题,但是 none 支持这种特殊的哈希算法:

理想情况下,解决方案将使用现有数据库,或者至少使用现有算法,以便提供与当前存在的相同级别的安全性。更改数据库的密码哈希算法不是一种选择,因为用户已经存在,我不希望要求每个人都重置密码(使用较弱的算法,none)。

如何在 htpasswd 中直接或间接实现此自定义数据库身份验证?

1 - 这是一个 VBulletin 用户数据库。

2 - 服务器是 运行ning Nginx,但安装了 apache2-utils 用于 htpasswd 编辑。

正如 Alexey 所说 auth_request 是内置的预身份验证机制,无需更改应用程序逻辑即可集成,基本上您创建另一个内部后端位置,以便在允许请求发生之前命中。 Nginx 1.5.4+ 将此模块合并到主 repo 源中,因此不再需要额外的配置和编译步骤。