我有一个通过htpassword调用运行用户名和密码的脚本:
/usr/local/apache2/bin/htpasswd -b $file $user $pass
并将它们添加到文件中。
bash-3.00$ grep caspers$nytest /prod/archive/2013Nov29/foo-users1
aacaspersrepo:$apr1$QSKSjpwI$Mrn8sWRki4Pb3kxYwayPF/
aacasperstreasview:$apr1$PHpwkF2N$YsAr7cnJtjABK7T8FbhgL.
casperstest:$apr1$lIuRZ1jW$DAHFKmIRHcPoS0kAzRcmB1
casperstest1:$apr1$1nyAfTJN$yAtF1ToIw5UCQxo7CJMcp0
casperstest2:$apr1$BZEcwVEV$dILld.zfxa4B6G0pKQFtg/
caspers$bank:$apr1$XWdLqwKb$O8st/xXcPOyEmApsHj4FS.
caspers$nytest:$apr1$N/GoMyoZ$5WGvyWVWGDgZPApuvGeb9/
casperscust$ny:$apr1$zCpRLoZG$zK8yc9IkKoR1BqGsHXFdK/
casperscust$nytest:$apr1$gLzFo3gk$YVZ9ALVhD/rHOhNUmJic80
bash-3.00$
bash-3.00$
bash-3.00$
bash-3.00$ grep caspers$nytest /prod/archive/2013Nov28/foo-users1
aacaspersrepo:$apr1$GahfhX78$eah4xp9ba.hQ1jb8NbPC.1
aacasperstreasview:$apr1$8aKZu1ku$Q8BKTSEdXFxkpQtXIhQO01
casperstest:$apr1$gmIdA8cX$FTe1hreH5/6gFLTFYA9zN.
casperstest1:$apr1$dtSjEVAZ$ya2S4gJ5ArKX7Z5kKDYnS.
casperstest2:$apr1$ZcKdZrTG$Ip0jxulsxR.KNJkDhi3rw1
caspers$bank:$apr1$BvCtx.n2$s/teof5StdXBFzc3wAe.d1
caspers$nytest:$apr1$GjOnubg1$KtselMH6H6nCyp7oiAbOJ/
casperscust$ny:$apr1$ieUhlGhA$zrHnSkdxbHlG7eK.3mmYO1
casperscust$nytest:$apr1$pAFgIv71$YMIjy8T7/6DQnJSdRYk361
bash-3.00$
日子之间的差异是巨大的。 问题是密码哈希值从一天变为另一天。 除非用户更改它们,否则你会认为hasnes是相同的。 htpasswd使用的算法将为同一密码unitl抽出相同的哈希值,用户更改了它。
我在文档中没有看到任何内容。
这是预期的行为还是我的脚本出了什么问题?
答案 0 :(得分:1)
这是预期的行为。
每次密码被哈希时,htpasswd都会使用随机盐。除此之外,这样做是为了使具有相同密码的两个用户不会获得相同的哈希值,以避免对密码文件进行字典攻击。
您可以在此处找到有关apache httpd密码格式的文档: http://httpd.apache.org/docs/current/misc/password_encryptions.html