配置 htpasswd 以使用自定义哈希算法根据现有数据库验证用户
Configure htpasswd to verify user against existing database with custom hashing algorithm
我有一个用户数据库1,其中密码按以下方式加盐和散列:
hash = md5(md5(password) + salt)
我想为这个数据库中的任何用户创建私人目录,我设想通过将 .htpasswd 配置为对这些目录进行私人用户身份验证来实现。我研究了几种方法来解决这个问题,但是 none 支持这种特殊的哈希算法:
- 使用 htpasswd 的默认单运行 md5 算法生成 htpasswd 条目,在输入用户密码时生成。但是,与密码哈希在现有数据库中的存储方式相比,这降低了安全性。
- 使用 mod_auth_mysql 和 Apache2 配置直接数据库访问。但是,此模块不支持自定义哈希算法,而仅支持 single-运行 salt+md5.
理想情况下,解决方案将使用现有数据库,或者至少使用现有算法,以便提供与当前存在的相同级别的安全性。更改数据库的密码哈希算法不是一种选择,因为用户已经存在,我不希望要求每个人都重置密码(使用较弱的算法,none)。
如何在 htpasswd 中直接或间接实现此自定义数据库身份验证?
1 - 这是一个 VBulletin 用户数据库。
2 - 服务器是 运行ning Nginx,但安装了 apache2-utils 用于 htpasswd 编辑。
正如 Alexey 所说 auth_request 是内置的预身份验证机制,无需更改应用程序逻辑即可集成,基本上您创建另一个内部后端位置,以便在允许请求发生之前命中。 Nginx 1.5.4+ 将此模块合并到主 repo 源中,因此不再需要额外的配置和编译步骤。
我有一个用户数据库1,其中密码按以下方式加盐和散列:
hash = md5(md5(password) + salt)
我想为这个数据库中的任何用户创建私人目录,我设想通过将 .htpasswd 配置为对这些目录进行私人用户身份验证来实现。我研究了几种方法来解决这个问题,但是 none 支持这种特殊的哈希算法:
- 使用 htpasswd 的默认单运行 md5 算法生成 htpasswd 条目,在输入用户密码时生成。但是,与密码哈希在现有数据库中的存储方式相比,这降低了安全性。
- 使用 mod_auth_mysql 和 Apache2 配置直接数据库访问。但是,此模块不支持自定义哈希算法,而仅支持 single-运行 salt+md5.
理想情况下,解决方案将使用现有数据库,或者至少使用现有算法,以便提供与当前存在的相同级别的安全性。更改数据库的密码哈希算法不是一种选择,因为用户已经存在,我不希望要求每个人都重置密码(使用较弱的算法,none)。
如何在 htpasswd 中直接或间接实现此自定义数据库身份验证?
1 - 这是一个 VBulletin 用户数据库。
2 - 服务器是 运行ning Nginx,但安装了 apache2-utils 用于 htpasswd 编辑。
正如 Alexey 所说 auth_request 是内置的预身份验证机制,无需更改应用程序逻辑即可集成,基本上您创建另一个内部后端位置,以便在允许请求发生之前命中。 Nginx 1.5.4+ 将此模块合并到主 repo 源中,因此不再需要额外的配置和编译步骤。