htpasswd不准确的检查

时间:2011-10-28 06:20:42

标签: apache nginx .htpasswd

我发现了一件有趣的事情。我用htpasswd文件设置了Nginx for Base Auth。一切正常,但<correct password><some random chars>等密码可以获得访问权限以及<correct password>

可以吗?它只是一个Nginx问题,还是与Nginx和Apache中使用的crypt方法有关?

1 个答案:

答案 0 :(得分:2)

我与我们的服务器管理员分享了此信息。他找到了答案: crypt算法只散列前8个字符,因此如果您的密码长度超过8个字符,则不会改善其伪造抵抗。 如果您的密码长度为6个符号,请说明

  

passwd的

基本身份验证会拒绝passwd01

之类的密码

如果您使用htpasswd实用程序并希望您的密码长度超过8个符号以提高其加密强度,则最好使用md5sha算法加密它们({{1}分别和-m修饰符。)

所以你的主张

  

它与Nginx和Apache

中使用的crypt方法有关

是正确的

可以在GNU.org libc 32.3 Encrypting Passwords找到证明:

  

对于基于DES的算法,盐应该由字母表中的两个字符组成./0-9A-Za-z,crypt的结果将是那两个字符,后面是来自同一字母表的11个字符,13总共。 只有密钥中的前8个字符显着