1

我已经阅读了有关如何使用散列在网站中实现安全性的信息,并且我没有创建像银行或存储信用卡这样非常敏感的东西。但是,我想知道最佳实践。我的网站具有 AES 256 的 TLS 证书

主要问题:

1.)通过会话再次发送哈希密码似乎是我能想到的保持会话相当安全的唯一方法。在我看来,我并不真正关心用户是否找到该值,但我会关心用户是否找到某种方式来查看数据库并确切地知道我的加密算法是什么。

2.) 我应该在散列密码之前完全取出我的算法,还是应该使用不同的散列方法?

在 bcrypt 之前或之后使用 sha512 是否可以,因为就碰撞和蛮力而言,这两者都是合理的?

4

1 回答 1

1

就我个人而言,我只是在登录时存储和比较 SHA512 密码,而对于会话跟踪,我存储了一个密钥hash('sha512', $username.$salt.$password);,该密钥存储在会话中,并与数据库中的用户密钥进行比较以验证他们的会话。

我还没有遇到任何安全问题,除非您知道用户的用户名、密码和他们的用户盐(显然不应该存储在数据库中),否则应该不可能伪造密钥,所以应该是只要有人不能同时访问您的数据库和代码,就安全(在这种情况下,您遇到的问题比保护用户密码更大;))

于 2012-02-03T05:14:27.507 回答