【问题标题】:Apache basic auth, mod_authn_dbd and password saltApache 基本身份验证、mod_authn_dbd 和密码 salt
【发布时间】:2012-06-08 00:38:58
【问题描述】:

使用 Apache mod_auth_basicmod_authn_dbd,您可以通过在数据库中查找该用户的密码来验证该用户。我看到如果密码是明确的,那么工作,但是如果我们使用随机字符串作为盐(也存储在数据库中)然后存储连接的哈希值呢?

mod_authn_dbd 要求您指定一个查询以选择该密码,而不是决定用户是否经过身份验证。因此,您不能使用该查询将用户提供的密码与盐连接起来,然后与存储的哈希值进行比较。

AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"

有没有办法让它工作?

【问题讨论】:

    标签: apache authentication basic-authentication


    【解决方案1】:

    查看基本身份验证的Password Formats,如果使用apr_md5_encode 函数完成哈希,我似乎可以完成这项工作。

    找到与此相关的another question 并链接到Java implementation。我使用该实现稍作改动来计算我的网站正常用户创建流程中的数据库哈希。在此之后,我可以在这个查询中使用 mod_authn_dbd:

    AuthDBDUserRealmQuery "SELECT CONCAT('$apr1$',password_salt,'$',password_hash) FROM users WHERE user = %s AND realm = %s"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-04
      • 2017-09-18
      • 1970-01-01
      • 2019-07-22
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多