使用注册表单在DB中存储密码的安全方法是什么?

dee*_*ell 1 php mysql security

我有一个名为server的注册表单,其中包含名称,IP,密码字段.表格将发送由运营商填写的数据,但问题是:

在插入验证码之前,密码将如何运行?

一些简短的例子:

表格

<form method=POST action=myActPage.php>
  <input type=PASSWORD name=PWD value="" />
  <input type=SUBMIT value=GO />
</form>
Run Code Online (Sandbox Code Playgroud)

问题就在这里---在交通之间---密码可以在这里被盗......如何防止密码发生?


PHP行动页面

if ($_POST) {

   $pwd = $_POST['PWD'];
   $pwd = md5($pwd);

   $response = mysql_query("INSERT INTO tbl_pwd ('pwd') VALUES ('$pwd') ");

}
Run Code Online (Sandbox Code Playgroud)

感谢您对此事的任何想法.

编辑: 我真的花了将近两个小时在stackoverflow上搜索,我没有发现这个特定的问题,这就是问题的原因.毫无疑问"表单和php动作脚本之间流量" 重要说明:我正在寻找一种不使用SSL over HTTP的解决方案.

Ric*_*kir 7

如果您担心被截获的密码,您将不得不考虑使用HTTPS.即使你在客户端散列密码,它也很可能仍然容易受到重放攻击.

编辑

至于存储它们,您不再需要使用MD5.它已经陈旧并且有缺陷(见第二段).您应该使用更好的哈希算法,例如SHA.你还应该给它们加盐.盐使字典攻击更加困难,特别是如果您为每个密码使用唯一的盐.这意味着即使两个用户拥有相同的密码,他们的哈希也会有所不同.