作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我对加密和散列的理解:
构建 Web 应用程序时,我应该:
如果以上两点正确,我应该将加密 key 和盐存储在哪里?
如果我将其存储在数据库中,那么如果数据库受到损害,这似乎有点毫无意义。不过,好处是我可以为每个用户分配唯一的加密 key 和盐。
我应该将加密 key 和盐存储在应用程序的配置中吗?如果数据库被泄露,至少加密 key 和盐不会被泄露(希望如此)。问题在于,这可能意味着每个人都共享相同的加密 key 和盐。
建议做什么?
最佳答案
如果您对电子邮件进行加密,则需要使用普通的盐/ key 来进行加密。否则,您如何通过数据库中的电子邮件地址选择用户来检查哈希密码是否正确?您无法每次都解密每个电子邮件地址。
总的来说,我认为加密电子邮件地址几乎没有什么好处。如果需要,可以使用 MySQL 数据库加密,但不必在应用程序级别担心这一点。
用于散列密码的盐应该/需要是唯一的并且可以存储在数据库中,事实上它可以是散列本身的一部分。请参阅http://www.openwall.com/phpass/以获得良好的实现。
关于php - 加密电子邮件、散列密码并将其存储在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900530/
我是一名优秀的程序员,十分优秀!