脚本宝典收集整理的这篇文章主要介绍了php crypt()河豚盐长度向后兼容,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在这里我犯了一个错误,在第三个$21之后的字符长度不是22.但它工作正常所以我没有找到错误.
它适用于运行Windows和PHP 5.4.4的桌面以及使用PHP 5.3.x运行amazon linux的AWS ec2,其中包含太短的盐.
有一天,我将AWS PHP更新为5.5.14.然后问题发生了. crypt()一直返回* 0.
经过一番尝试,我在盐的末尾加了一个$,所以它变成22个字符.它再次工作并返回与以前相同的哈希字符串.虽然它不遵守河豚规则,但字符应为[./a-zA-Z0-9]
但是现在我将这个站点复制到另一台运行oPEnSUSE 13.1和PHP 5.5.14的机器上,这个盐再次失败了.
我将PHP降级到5.4.20,但没有帮助.
什么是影响此河豚盐长度错误兼容性问题的库或模块? Tt似乎不是PHP的版本. AWS 5.5.14
或者是否有另一个神奇的咒语可以再次救我?我尝试在[./a-zA-Z0-9]中为每个替换尾部$但是没有幸运,哈希字符串是不同的….
对于这个旧的哈希,我会尝试验证它们,生成一个有效的最后一个字符22的盐.crypt函数实际上只使用字符22的部分位(盐的126位而不是128位).因此,最后一个字符22的组将以相同的散列值结束.
请参阅此问题Why does crypt/blowfish generate the same hash…的答案
如果您尝试将所有相关字符[.Oeu]作为字符22,那么一个组合将产生与无效盐相同的结果的可能性很大.
编辑:
以上是脚本宝典为你收集整理的php crypt()河豚盐长度向后兼容全部内容,希望文章能够帮你解决php crypt()河豚盐长度向后兼容所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。