【问题标题】:apache authentication with .htpasswd password using salt使用 salt 使用 .htpasswd 密码的 apache 身份验证
【发布时间】:2013-09-28 17:53:18
【问题描述】:

我想知道 Apache 服务器如何使用 .htpasswd 对我进行身份验证

我在文件夹中有一个.htpasswd 文件。 .htpasswd 内容是用 php 生成的,密码是用 crypt() 函数加密的,如下所示:

crypt($password,mb_substr($password,0,2));

问题是,无论我使用哪种盐:mb_substr($password,0,2)my_private_salt 或“随便”,如果我通过正确的用户名/密码组合,服务器将始终对我进行身份验证。

那么,那盐有什么意义呢?

谢谢

【问题讨论】:

  • 它让坏人更难解密密码。您应该使用随机盐。
  • salt 保护对 .htaccess 的未授权访问,而不是 HTTP Auth 安全性。检查此stackoverflow.com/questions/6441578/… 以获取参考
  • 感谢您的回答!

标签: php apache authentication salt .htpasswd


【解决方案1】:

我找到了答案。

php crypt() 函数生成一个唯一的散列。如果未指定盐,则将生成随机盐。

一个BIG问题是只有密码中的前8个字符将用于生成哈希,而盐中只有两个字符。

生成的哈希将由盐 + 其他 11 个字符组成。

例如: 如果我们这样做: crypt('1234567','12') 结果将是“120QBxD1IX.Cw”。 注意哈希 (12) 中的前两个字符

这是 Apache 服务器知道如何加密请求并将其与 .htpasswd 文件中保存的哈希值进行比较的方式。

如需更好的解释,请查看此链接:http://blog.irreverence.co.uk/?p=858

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    相关资源
    最近更新 更多