1

我不知道有多少百分比的黑客侵入了代码以及有多少百分比侵入了数据库。但是如果我的猜测是正确的并且破解 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 代码。即使他知道我的数据库,如何测试他的攻击?

是否有助于提高我的安全性?

谢谢

4

2 回答 2

1

这就是所谓的“默默无闻的安全性”,这意味着您错误地依赖实现来保护您的数据,而不是强大的算法。一旦有你的哈希和盐的人弄清楚你在做什么,你就会回到算法本身的力量。

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

于 2013-05-28T17:52:52.903 回答
0

你想要做的是添加一个服务器端的秘密。如果做得正确,这确实可以保护弱密码,如果攻击者可以访问数据库,但不能访问代码(这对于 SQL 注入来说很典型)。

添加服务器端密钥既可以在散列之前添加一个辣椒,也可以通过在将散列值存储到数据库之前使用服务器端密钥加密散​​列值来更好地完成。我推荐的是混淆哈希过程,在您的示例中,秘密是算法而不是密钥。

于 2013-05-30T13:34:06.570 回答