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