注意:我是学生,我在自己的项目中需要这个
我在这里看到encrypting data in php
的方式我的问题是:我应该将加密密码存储到数据库中,并在有人登录后解密并检查它们是否相似?
另外,我应该在数据库上使用其他一些安全层来确保数据安全吗?一些MySql自加密还是类似的?
我需要一个可以做到这一点的基本加密。我知道有几个关于此的线程,但我的问题是如何做到这一点以及是否有必要保护数据库中的数据(触发器,函数等)。
答案 0 :(得分:3)
请勿保存加密密码,而是存储哈希版本。
使用诸如PBKDF2(基于密码的密钥派生函数)之类的算法,其具有随机盐和相当大的迭代计数以减慢散列。然后,当您要检查密码时,通过相同的哈希函数运行密码,并验证结果是否与保存的哈希相匹配。
注意:保存salt和迭代计数以及结果哈希,这些都不需要保密。