2012-12-07 162 views
1
  1. 我想要一个安全的登录过程,其中登录数据被加密。
  2. 防止登录表单的重播攻击。
  3. 与此同时,我想要密码被加密,没有人可以解密它们。

对于我可以MD5的表格数据。安全登录+腌制密码存储

对于2.我可以生成一个随机数并将其与客户端密码一起散列。

对于3.我可以使用存储在DB盐和仅保存MD5(密码|盐)DB

现在问题来了,1和2,我将派出MD5(密码|随机数)来服务器,但我无法授权,因为我没有检查的原始密码。

我可以同时使用1,2,3吗?

+1

您想使用MD5进行加密吗? 请更正您的问题 – Shurmajee

+0

是,单向加密 – user1884811

+1

MD5是哈希算法 – Shurmajee

回答

-2

对于传输安全使用SSL/TLS。 重播保护使用CSRF令牌。 对于安全存储密码使用加密散列something like this.

编辑:提交方案不安全感,你可以阅读更多关于这个想法在这个post at security.se

+0

-1用于链接到弱散列方案 – CodesInChaos

+0

@CodesInChaos点不安全 – fatfredyy

+0

阅读关于密码散列的体面文章。对单次迭代哈希的密码猜测攻击非常快。这就是为什么你应该使用缓慢的哈希构造,如scrypt,bcrypt或PBKDF2。这大大增加了破解密码散列的成本。 – CodesInChaos

2

为1和2,使用HTTPS(SSL)。它可以防止主动和被动攻击,重播,保持密码的机密性。

3使用一个专门的密码散列和每个用户的salt。标准选择是scrypt,bcrypt和PBKDF2。对细节进行一些研究,我们在这里和安全方面有很多相关的问题。 SE。