ala*_*laf 3 password htaccess apache-httpd
我有一个在 Debian Linux 上运行的 apache Web 服务器,我使用 htaccess 保护某个目录。我不知道 .htpasswd 文件是如何创建的。Apache 文档说 crypt() 加密用于加密密码,直到版本 2.2.17 和 MD5 加密从 2.2.18 开始使用。如何区分我的 .htpasswd 文件使用哪种加密?
我不知道 .htpasswd 文件是如何创建的。
您可能正在寻找htpasswd
命令。阅读手册页了解更多详情:
man htpasswd
Run Code Online (Sandbox Code Playgroud)
如何区分我的 .htpasswd 文件使用哪种加密?
为什么你需要知道这些?如果您只想编辑文件,我认为知道这一点并不重要。
我问是因为我的印象是他们都很脆弱。
htpasswd
我机器上的命令可以使用四种不同的密码格式:
# MD5 (default)
martin@martin ~ % htpasswd -m -b -n user pass
user:$apr1$uFKIg3No$ItOJ5p6EEbALwPDYcPDd0.
# crypt
martin@martin ~ % htpasswd -d -b -n user pass
user:qMYdeiUkbhR/o
# SHA
martin@martin ~ % htpasswd -s -b -n user pass
user:{SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=
# Plain
martin@martin ~ % htpasswd -p -b -n user pass
user:pass
Run Code Online (Sandbox Code Playgroud)
这应该可以帮助您确定您使用的是哪种格式。
我想知道你关心的是什么......哈希是否易受攻击只有在攻击者能够访问.htpasswd
文件时才值得关注,这在合理的配置中应该是不太可能的。该.htpasswd
文件应该存储在所提供的目录之外,例如在/etc
中的某个地方,Web 服务器可以访问它,但不会提供它。
您应该更关心的是HTTP Basic Auth 以明文形式传输密码,如果您不使用 HTTPS,这绝对是不安全的。因此,如果您担心安全性,请考虑切换到HTTP Digest Auth。