Login 我的网络登录系统工作吗?

Login 我的网络登录系统工作吗?,login,security,Login,Security,我正在为一个没有SSL的网站构建一个web登录系统,下面是我的实现: 我在服务器中有一个表,它有两个字段,一个是原始用户名,另一个是pass_hashed(hased with sha1(password))。 当用户登录到我的系统时,我会: 生成一个密钥 密码\u hashed=sha1(密钥+sha1(密码)) 提交3个值:用户名、密钥、密码\u散列 在服务器端: 检查密钥是否存储在数据库中,如果是,则使登录无效,否则将密钥保存到数据库中 根据用户名查询用户信息,然后比较sha1(key+p

我正在为一个没有SSL的网站构建一个web登录系统,下面是我的实现:
我在服务器中有一个表,它有两个字段,一个是原始用户名,另一个是pass_hashed(hased with sha1(password))。 当用户登录到我的系统时,我会:

  • 生成一个密钥
  • 密码\u hashed=sha1(密钥+sha1(密码))
  • 提交3个值:用户名、密钥、密码\u散列
  • 在服务器端:

  • 检查密钥是否存储在数据库中,如果是,则使登录无效,否则将密钥保存到数据库中
  • 根据用户名查询用户信息,然后比较sha1(key+pass\u hased)和password\u hashed

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

    是的,组合似乎还可以。是否要使用时间戳生成密钥


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

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


    您确实需要SSL。

    正如其他用户所建议的,您实施的系统不安全,可能会导致安全问题。如果您正在收集客户信息,则必须使用SSL证书。不会花更多的钱。从7美元开始

    我正在为一个没有SSL的网站构建一个web登录系统
    要使其安全是完全不可能的。使用SSL。除了它不会有帮助之外,这是一个安全的设计,除了SHA1太容易强制(使用PBKDFv2)。另外,请注意,任何窃取您数据库的人都可以冒充任何用户(仅限您的网站),谢谢您的精彩评论。事实上,我的CeleET是一个C++进程,不是Web浏览器,但是你对冒充问题是正确的……这是一个完全独立的问题;你应该编辑你的问题。您如何知道用户没有获得客户端的特洛伊木马副本?