0

我正在为没有 SSL 的网站构建一个 Web 登录系统,所以这是我的实现:
我在服务器中有一个表,它有两个字段,一个原始用户名和 pass_hashed(使用 sha1(密码))。当用户登录我的系统时,我会:

  1. 生成密钥。
  2. password_hashed = sha1(key + sha1(密码))
  3. 提交 3 个值:用户名、密钥、密码哈希

在服务器端:

  1. 检查密钥是否存储在数据库中,如果是,则使登录无效,否则将密钥保存到数据库。
  2. 根据用户名查询用户信息,然后比较sha1(key + pass_hased)和password_hashed。

我的问题是我的方法可以吗?如果是,我可以使用密钥作为时间戳吗?

4

3 回答 3

0

是的,组合似乎没问题。您想使用时间戳来生成密钥吗?

如果是这样,您可以从它开始,但尝试不同的组合来帮助提高安全性。

于 2013-05-13T03:30:01.977 回答
0

尽管您的解决方案总比没有好,但它最终还是有缺陷的。这是因为在用户注册过程中的某个时刻,他们只需要发送一部分信息。如果此时通过网络捕获了信息,则以后可以重复任何登录。

你真的需要 SSL。

于 2013-05-13T04:44:24.857 回答
0

正如其他用户所建议的那样,您实施的系统并不安全,可能会导致安全问题。如果您正在收集客户的信息,则必须使用 SSL 证书。它不会花费更多。它的起价低至 7 美元!

于 2013-05-13T06:45:48.727 回答