6

我有一个登录表单,它会将 id 和密码提交到一个 php 文件,然后该文件将根据 SQL 数据库中的数据检查该 id 和 pw。我如何加密传出的表单数据以确保在到达目的地之前没有人可以看到它?登录表单代码是

<html>
<head>
<title>
Login page
</title>
</head>
<body>
<form name="login" action="fetchalldata.php" method="post">
Username : <input type="text" name="userid"/>
Password : <input type="password" name="pswrd"/>
<input type="button" name="submit" value="Login"/>
</body>
</html>

在数据库上预先散列密码并发送散列密码会更有效吗?

4

2 回答 2

13

SSL就是答案。唯一的答案。

但是,如果您必须尝试使用​​自制解决方案,请考虑以下想法:

  • 让 PHP 代码为 Javascript 提供当前时间戳。
  • 您获取用户输入的密码,附加时间戳,然后对其进行加密。
  • 将加密的密码传回带有时间戳的服务器。
  • 让服务器确保返回的数据是最新的,让它根据自己的数学检查加密密码。
  • 如果时间戳太旧或已用于登录已拒绝它。

这仍然是一个糟糕的想法,但它并不像发送纯文本密码那样糟糕。

使用 SSL。真的。

于 2012-09-06T00:40:35.230 回答
4

使用安全的 SSL 连接是确保表单数据加密的唯一真正方法。但是,您可以在发送之前使用一些 JavaScript 以某种方式对密码进行编码。它不会提供太多的安全性(因为任何可以查看您网站的人都可以看到 JavaScript 并对其进行逆向工程),但它至少可以避免发送纯文本密码。

于 2012-09-06T00:32:52.637 回答