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

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

WBOY
Libérer: 2023-03-01 22:30:01
original
1272 Les gens l'ont consulté

当我们存储用户密码的时候当然需要保存完整的散列结果,但有时候这个散列结果很长,在有些情况下显得很臃肿。比如我想写一个简单的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位来实现的.当然,太短了要小心被暴力破解.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal