在通过GET发送信息之前,我如何加密Md5文本输入


how do i encrypt Md5 text input before sending information via GET?

我有一个小的登录表单,我将通过GET发送名称和密码,但我不想把密码放在纯文本的url中。我可以在按下提交按钮后,但在通过GET发送之前Md5吗?

不应该使用md5对密码进行哈希。

如果你想学会安全地对你的用户密码进行哈希,那么请好好阅读如何在PHP中使用bcrypt对密码进行哈希?和安全哈希和盐PHP密码。

我将通过GET发送姓名和密码

永远不要使用GET登录,是的,它显示在url中,但它也显示在服务器请求日志中的GET参数。

我只是想对用户周围的人隐藏这些字符电脑。

使用表单输入类型type="password"将解决这个问题。但也存在中间人攻击的问题,攻击者可以将自己注入数据包路由机制并捕获&记录然后在跳之间重新路由每个数据包,捕获POST, GET等参数。因此,如果您认真考虑保护您的用户/站点免受黑客攻击,您至少应该使用SSL加密点A和点B之间的连接数据包。

但是要回答你的问题,这里是你问(ish) o_O,你需要使用javascript来处理表单之前张贴,但它显然不会工作,如果javascript是关闭:

<?php echo '<pre>'.print_r($_POST,true).'</pre>';?>
<script type="text/javascript"
    src="http://github.com/kvz/phpjs/raw/master/functions/xml/utf8_encode.js"></script>
<script type="text/javascript"
    src="http://github.com/kvz/phpjs/raw/master/functions/strings/md5.js"></script>
<script type="text/javascript">
<!--
function pwd_handler(form)
{
        if (form.password.value != '')
        {
            form.md5password.value = md5(form.password.value);
            form.password.value = '';
        }
}
//-->
</script>
<form action="" method="post" onsubmit="pwd_handler(this);">
    <input type="text" name="username" />
    <input type="password" name="password" />
    <input type="hidden" name="md5password" value="" />
    <input type="submit" value="Log in" />
</form>