如何确保您存储的密码使用php和mySql进行了良好的加密


How can you ensure that the password you stored is well encrypted using php and mySql?

注意:我是一名学生,在我自己的项目中需要这个

我在这里看到了一种在php中加密数据的方法

我的问题是:我是否应该将加密的密码存储到数据库中,并在有人登录并检查他们是否相似时对其进行解密?

此外,我应该在数据库上使用其他一些安全层来确保数据的安全吗?一些MySql自加密或类似的东西?

我需要一个基本的加密可以做到这一点。我知道这方面有几个线程,但我的问题是如何做到这一点,以及保护数据库中的数据(触发器、函数等)是否有用。

不要保存加密的密码,而是存储哈希版本。

使用诸如PBKDF2(基于密码的密钥推导函数)之类的算法,使用随机盐和相当大的迭代次数来减慢哈希。然后,当您想要检查密码时,通过相同的哈希函数运行密码,并验证结果是否与保存的哈希匹配。

注意:保存salt和迭代计数以及生成的哈希,这些都不需要是秘密的。