我的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函数,该函数使用字符串并返回哈希值,但我不知道在哪里调用该函数)?
解决方法:
提交表单时,您应该哈希所需的值.
我猜这样的事情应该工作:
的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>标记之外).