- 我想要一个安全的登录过程,其中登录数据被加密。
- 防止登录表单的重播攻击。
- 与此同时,我想要密码被加密,没有人可以解密它们。
对于我可以MD5的表格数据。安全登录+腌制密码存储
对于2.我可以生成一个随机数并将其与客户端密码一起散列。
对于3.我可以使用存储在DB盐和仅保存MD5(密码|盐)DB
现在问题来了,1和2,我将派出MD5(密码|随机数)来服务器,但我无法授权,因为我没有检查的原始密码。
我可以同时使用1,2,3吗?
对于我可以MD5的表格数据。安全登录+腌制密码存储
对于2.我可以生成一个随机数并将其与客户端密码一起散列。
对于3.我可以使用存储在DB盐和仅保存MD5(密码|盐)DB
现在问题来了,1和2,我将派出MD5(密码|随机数)来服务器,但我无法授权,因为我没有检查的原始密码。
我可以同时使用1,2,3吗?
对于传输安全使用SSL/TLS。 重播保护使用CSRF令牌。 对于安全存储密码使用加密散列something like this.
编辑:提交方案不安全感,你可以阅读更多关于这个想法在这个post at security.se
-1用于链接到弱散列方案 – CodesInChaos
@CodesInChaos点不安全 – fatfredyy
阅读关于密码散列的体面文章。对单次迭代哈希的密码猜测攻击非常快。这就是为什么你应该使用缓慢的哈希构造,如scrypt,bcrypt或PBKDF2。这大大增加了破解密码散列的成本。 – CodesInChaos
为1和2,使用HTTPS(SSL)。它可以防止主动和被动攻击,重播,保持密码的机密性。
3使用一个专门的密码散列和每个用户的salt。标准选择是scrypt,bcrypt和PBKDF2。对细节进行一些研究,我们在这里和安全方面有很多相关的问题。 SE。
您想使用MD5进行加密吗? 请更正您的问题 – Shurmajee
是,单向加密 – user1884811
MD5是哈希算法 – Shurmajee