我发现了一件有趣的事情。我用htpasswd文件设置了Nginx for Base Auth。一切正常,但<correct password><some random chars>
等密码可以获得访问权限以及<correct password>
。
可以吗?它只是一个Nginx问题,还是与Nginx和Apache中使用的crypt方法有关?
答案 0 :(得分:2)
我与我们的服务器管理员分享了此信息。他找到了答案:
crypt
算法只散列前8个字符,因此如果您的密码长度超过8个字符,则不会改善其伪造抵抗。
如果您的密码长度为6个符号,请说明
passwd的
基本身份验证会拒绝passwd01
如果您使用htpasswd
实用程序并希望您的密码长度超过8个符号以提高其加密强度,则最好使用md5
或sha
算法加密它们({{1}分别和-m
修饰符。)
所以你的主张
它与Nginx和Apache
中使用的crypt方法有关
是正确的
可以在GNU.org libc 32.3 Encrypting Passwords
找到证明:
对于基于DES的算法,盐应该由字母表中的两个字符组成./0-9A-Za-z,crypt的结果将是那两个字符,后面是来自同一字母表的11个字符,13总共。 只有密钥中的前8个字符显着。