我正在尝试在提交表单之前将密码哈希应用于所有密码字段。到目前为止我所拥有的是......
$("#loginform").submit(function(e) {
e.preventDefault();
$('input[type=password]').each(function(){
console.log($.sha256($(this).val())) //Hash password
//Set password back
});
return true;
});
...将拦截提交并散列密码,但我无法使用常规方法替换输入框中的明文密码。
我知道如何使用隐藏的输入等来执行此操作,但我将此应用于已经具有相当可靠的登录结构的站点,因此我希望将HTML修改降至最低。
谢谢:)
答案 0 :(得分:1)
如果客户端哈希的目的是保护密码通过不安全的连接(HTTP),请确保使用盐和随机“挑战”。
像这样:
response = sha256(挑战+ sha265(盐+密码))
服务器知道挑战,盐和sha265(盐+密码)的答案,然后它可以验证响应。
你需要使用salt +密码来避免彩虹攻击,以及防止重放攻击的响应/挑战。
更好的方法是使用SSH;)