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

Gab*_*ter -1 php forms md5 get

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

Law*_*one 6

您不应该将md5用于散列密码.

如果您想学习安全地哈希用户密码,那么请仔细阅读如何在PHP中使用bcrypt进行哈希密码?PHP密码的安全哈希和盐.

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

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

我只是想隐藏用户计算机周围的人物.

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

但是回答你的问题就是你问的问题(ish)o_O,你需要在POST之前使用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>
Run Code Online (Sandbox Code Playgroud)