Maison  >  Article  >  développement back-end  >  通过截取某字符串散列结果的前n位字符来比较字符串正确性的做法是否妥当?

通过截取某字符串散列结果的前n位字符来比较字符串正确性的做法是否妥当?

WBOY
WBOYoriginal
2016-12-01 00:56:361250parcourir

当我们存储用户密码的时候当然需要保存完整的散列结果,但有时候这个散列结果很长,在有些情况下显得很臃肿。比如我想写一个简单的cookie防伪造程序,思路是先将cookie原始值进行mcrypt可逆加密,再将值拼上salt计算sha256并截取sha256结果的前10位接在最终cookie值的后面。验证时只需要将cookie值拆开,解密前一段字符,并计算sha256取前10位与后面的值进行比较。这样的做法是否安全?

回复内容:

当我们存储用户密码的时候当然需要保存完整的散列结果,但有时候这个散列结果很长,在有些情况下显得很臃肿。比如我想写一个简单的cookie防伪造程序,思路是先将cookie原始值进行mcrypt可逆加密,再将值拼上salt计算sha256并截取sha256结果的前10位接在最终cookie值的后面。验证时只需要将cookie值拆开,解密前一段字符,并计算sha256取前10位与后面的值进行比较。这样的做法是否安全?

密码的hash值不应该放在cookie中,你可以另外生成token来验证登录。

这种做法还是很常见的, 16位的md5就是先计算出32位然后截取中间16位来实现的.当然,太短了要小心被暴力破解.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:微信第三方图片多选Article suivant:什么是LAMP和LNMP开发?