我的应用程序我通过电子邮件登录
首次登录/注册
的客户端 的
服务器 的
的客户端 的
自动重新登录
的客户端 的
手动重新登录
的客户端 的
我读过的文章,在客户端
上发送(并存储)密码为raw处理md5,而不是原始(通过HTTPS)发送它有什么好处吗? (有什么问题吗?)(理论上,用户可以使用相同的md5输入另一个密码,但仍能登录 - 这是一个有效的问题吗?)
上面描述的这种机制是否合法?
答案 0 :(得分:0)
处理md5有什么好处,而不是发送它(通过 HTTPS)?
在安全方面,我会说并非真的,HTTPS已经阻止了man in the middle attack所以如果有人试图嗅探密码,它就无法正常工作。在这种情况下,您不会从哈希密码中获得太多收益。
理论上,用户可以使用相同的md5输入另一个密码,并且 仍然可以登录 - 这是一个有效的问题吗?
这是完全可能的,你甚至可以找到着名的“碰撞表”攻击,因为这个问题,但我认为这不是一个有效的问题。请记住,散列算法接收具有X长度的字符串作为输入,并将其转换为固定长度的字符串。这基本上意味着您将拥有数千/数百万的输入,这些输入将产生相同的输出。
编辑: 在向服务器发送MD5时,您可能想要考虑的一点是,您无法对密码强制执行规则,甚至无法使用密码执行任何操作。因此,您可能希望将密码原样发送到服务器,并让它处理“密码存储逻辑”。