破解php对数据库和密码混淆

时间:2013-05-28 17:46:53

标签: security hash salt

我不知道有多少黑客入侵代码,有多少百分比侵入数据库。但如果我的猜测是真的并且闯入php代码比劫持数据库更难,那么它是否会通过混淆数据库中的哈希密码来提高安全性?

在我见过的大多数情况下:

DB_hash = bcrypt(real_password.salt);

为什么不改变它?

DB_hash = bcrypt(salt.real_password);

或者即使我走得更远:

DB_hash = strrev( bcrypt(salt_last_five_char.real_password.rest_of_salt) );

黑客不知道我的PHP代码。即使他知道我的数据库,如何测试他的攻击?

它有助于提高我的安全性吗?

感谢

2 个答案:

答案 0 :(得分:1)

这就是默默无闻的“安全性”#34;这意味着您错误地依赖实施来保护您的数据,而不是强大的算法。只要有你的哈希和盐的人弄清楚你正在做什么,你就会恢复到算法的力量。

正如SLaks在评论中提到的,SHA-1不是一个很好的密码散列算法。不要担心弄乱盐,只需使用一个好的随机盐和更好的算法,如bcrypt。

答案 1 :(得分:0)

您要做的是添加服务器端密码。如果正确完成,这确实可以保护弱密码,如果攻击者可以访问数据库,而不是代码(这是SQL注入的典型代码)。

添加服务器端密钥可以在散列之前添加胡椒,或者甚至可以通过在将哈希值存储到数据库之前使用服务器端密钥加密哈希值来实现。我推荐的是混淆散列过程,在你的例子中,秘密是算法,而不是密钥。