Possible Duplicate:
Best way to prevent SQL Injection in PHP
The necessity of hiding the salt for a hash
我对MySQL和PHP还很陌生,在过去的几天里我开始自学,今天我正在研究密码加密等。我浏览了很多关于这个主题的网页,大多数网页都说要为表中的每个条目生成一个随机的salt(据我所知,您不希望相同每一个条目的盐)并且这个盐应该存储在条目旁边的表中。
据我所知(如果我错了,请纠正我),密码的加密并不能阻止黑客访问它,而只是在他们访问数据库时掩盖了真实值。当然,如果是这样的话,你也不想把salt存储在表中——如果黑客已经访问了数据库,并且可以看到加密的数据,向他显示salt只会让他的解密工作变得无限简单?
最佳答案
盐不是用来加密的。相反,它(连同密码)进入hash function。这样,没有人(甚至你的应用程序)可以确定密码,但你可以验证密码。
然后使用salt要求攻击者单独攻击每个密码散列(如果攻击者只想要一个密码,salt在任何方面都没有帮助)。由于rainbow tables,计算常用密码的散列函数输出相当容易。
salt值不是秘密的,可以安全地存储在MySQL数据库中(甚至可以发布)。
关于php - 在MySQL表中存储盐是否安全? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11712750/