0

我正在尝试在提交表单之前将密码哈希应用于所有密码字段。到目前为止,我所拥有的是这个......

$("#loginform").submit(function(e) {
    e.preventDefault();
    $('input[type=password]').each(function(){
        console.log($.sha256($(this).val())) //Hash password
        //Set password back
    });
    return true;
});

...这将拦截提交并对密码进行哈希处理,但我无法使用普通方法替换输入框中的明文密码。

我知道如何使用隐藏输入等来执行此操作,但我将其应用于已经具有相当可靠的登录结构的站点,因此我希望将 HTML 修改降至最低。

谢谢 :)

4

1 回答 1

1

如果客户端散列的目的是保护通过不安全连接 (HTTP) 的密码,请确保使用盐和随机“挑战”。

像这样:

响应 = sha256(挑战 + sha265(盐 + 密码))

服务器知道挑战、盐和 sha265(盐 + 密码)的答案,然后它可以验证响应。

你需要盐+密码来避免彩虹攻击,需要响应/挑战来防止重放攻击。

更好的方法是只使用 SSH ;)

于 2012-11-29T17:10:13.003 回答