我试图在.htpsswrd文件中保存用户名和密码组合。在我将用户名/密码发送到服务器以通过php脚本保存之前,我想在MD5中散列密码,因此普通密码不会通过http传输... 我找到了一个脚本,它会在javascript中生成一个MD5哈希值,但是apache服务器不接受它作为有效密码。 以下是我一直得到的:
password: a
hash: 0cc175b9c0f1b6a831c399e269772661
应该是什么样的:
password: a
hash: $apr1$OcckEo.t$ohO2NxaQZm/YAcWfFZSLi.
这个网站:http://aspirine.org/htpasswd_en.html告诉我,哈希是由以下内容组成的:特定于Apache的算法,使用随机盐和密码的各种组合的迭代(1,000次)MD5摘要。这是默认值(自Apache版本2.2.18起)。
所有我需要的,有一个函数,它将哈希我的任何字符串,并返回正确的哈希回复。 这就是我被困的地方!任何人? :)
答案 0 :(得分:1)
好两点:
1 - This Library可能有助于您尝试做的事情。
2 - 我的建议是将md5与salt一起推迟到服务器端脚本。在客户端base64编码传递以及您自己的字符串操作(如果您愿意)(并确保不将输入名称命名为password)。 我一直很喜欢这种方法,因为对于那些试图嗅探的人而言,这对我来说是一种痛苦。我可以处理密码,因为我喜欢服务器端以及任何进一步的操作。
祝你好运我的朋友