3

我的 html 页面中有表单

<form id="login_form" method="POST" action="index.php">
    <table>
        <tr>
            <td><label style="color:#47A3FF;" for="name" title="User name">
                Username</label></td>
            <td><input style="color:#47A3FF;" dojoType="dijit.form.TextBox"
                type="text" name="username"></td>
        </tr>
        <tr>
            <td><label style="color:#47A3FF;" for="loc">Password: </label></td>
            <td><input style="color:#47A3FF;" dojoType="dijit.form.TextBox"
                type="password" name="password"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <button dojoType="dijit.form.Button"  class="soria" style="border: 1px solid black; float:right;"
                type="submit">Login</button></td>
        </tr>
    </table>
</form>

通过网络发送用户名和密码时是否需要使用 SHA256?如何在这些数据上使用 SHA256(我有使用字符串并返回哈希值的函数 sha256_hash,但我不知道在哪里调用该函数)?

4

2 回答 2

3

提交表单时,您应该散列所需的值。

我想这样的事情应该有效:

HTML

<form onsubmit="return myOnSubmit(this);">

JavaScript

function myOnSubmit(aForm) {
    //Getting the two input objects
    var inputUsername = aForm['username'];
    var inputPassword = aForm['password'];

    //Hashing the values before submitting
    inputUsername.value = sha256_hash(inputUsername.value);
    inputPassword.value = sha256_hash(inputPassword.value);

    //Submitting
    return true;
}

编辑:由于“提交前对值进行哈希处理”部分,如果您有属性,它将不起作用maxlength,因为哈希值比明文密码要长得多。

如果您必须使用最大长度,那么您需要实现 HIDDEN FIELDS 并更改这些值,并确保不提交包含清除数据的字段(在<FORM>标签之外)。

于 2011-04-07T12:59:32.963 回答
1
<button dojoType="dijit.form.Button"  class="soria" style="border: 1px solid black; float:right;" type="submit" onclick="username.value=sha256_hash(username.value);password.value=sha256_hash(password.value)">Login</button></td>

通常当您发送敏感数据时,您只需要担心密码,因此您可以散列密码并保留用户。

于 2011-04-07T13:13:57.120 回答