PHP中的哈希和安全措施


Hashing and security measures in PHP

我读过关于如何使用哈希在网站中实现安全性的文章,我并没有创建像银行或存储信用卡这样非常敏感的东西。不过,我想知道最佳做法。我的网站有一个带有AES 256 的TLS证书

主要问题:

1.)在会话中再次发送哈希密码似乎是我能想到的保持会话安全的唯一方法。在我看来,我真的不在乎用户是否找到了这个值,但我会在乎用户是否能找到查看数据库的方法,并确切地知道我的加密算法是什么。

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

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

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

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