i我的应用程序我确实通过电子邮件登录
首次登录/注册
客户端
- 输入密码
- MD5哈希是计算
- MD5哈希存储在钥匙串(Clinet上的安全位置)
- md5哈希发送到服务器(https)
服务器
- 获取MD5哈希密码,并使用bcrypt与盐储存
- 发行通信令牌
客户端
- 列表项目
- 使用令牌直到到期
自动relogin
客户端
- 将MD5哈希从钥匙扣中拔出
- 发送到服务器(https)...
手动relogin
客户端
- 再次输入密码
- MD5哈希是计算(并存储的)
- MD5已发送到服务器...
我阅读的文章,但是,将密码发送(并将其存储为raw存储在客户端
上)处理MD5(通过HTTPS)而不是将其发送给MD5是否有优势?(从理论上讲,用户可以输入其他MD5的密码,并且仍然可以登录 - 这是有效的问题吗?)
是否在上面描述了该机制?
处理MD5是任何优势,而不是将其发送给原始(通过https)?
在"安全性"安全性中,我想说的不是,HTTPS已经阻止了中间攻击中的人,因此,如果有人试图嗅探密码,则该方式都无法正常工作。在这种情况下,您不会在客户端上的密码中得到太多。
另一方面,您可能需要考虑,当您向服务器发送MD5时,您无法执行密码或使用密码进行任何类型的操作。因此,您可能需要将密码作为服务器发送到服务器,并让其处理"密码存储logistic"。
从理论上讲,用户可以使用相同的MD5输入另一个密码,并且仍然可以登录 - 这是有效的问题吗?
这是完全可能的它是固定尺寸的字符串,实际上说这是不可能的,因此您不应该担心这方面太多。可能比这更重要的是使用一种良好的哈希算法,并将其与"盐"结合使用,以防攻击者掌握数据,这使得他们很难通过使用预先计算的哈希表来破解密码。