PHP中使用SHA256,PHP-使用sha256作为带有用户ID的哈希和加盐

我将在我的站点上使用sha256,以保护用户密码,并且由于盐问题,我正在考虑使用用户ID(int auto_increment).这将是唯一的,但不会很长且很费力,并且是public(user.php?id = 1),但重要的是它的唯一性对吗?

hash('sha256', $id . $password);

解决方法:

是的,盐的独特性(碰撞的可能性很小)很重要,但盐也应具有足够的熵(随机且足够长).用户ID不是随机的,并且可能太短,因此最好的选择是使用随机生成的字符串,并将它们与哈希一起存储在数据库中.

假设UID为9的用户选择一个愚蠢的密码:password.然后将要哈希的结果字符串可能是9password.您可以想象,即使在这种情况下,完整的字符串也可能会出现在rainbow tables(表中包含大量带有其原始字符串的哈希)的情况下.

如果在这种情况下的盐例如是OTAzMzYzODQzMjk5NTM1NDc1N,则要哈希的字符串是OTAzMzYzODQzMjk5NTM1NDc1Npassword,在彩虹表中不太可能出现.而且,输入字符串要长得多,从而降低了暴力攻击的风险.

标签:php,hash

来源: https://codeday.me/bug/20191012/1901778.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值