zoukankan      html  css  js  c++  java
  • MD5 SHA1 HMAC HMAC_SHA1区别

    MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。

    SHA1是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。

    HMAC_SHA1

        一直以为HMAC_SHA1和SHA1没有任何区别,直到现在才发现它俩不是完全一样的。
        HMAC的百度百科解释:
        “HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。”
        可以看出,HMAC是需要一个密钥的。所以,HMAC_SHA1也是需要一个密钥的,而SHA1不需要。
     
    /**
         * 生成userkey
         * @param $userId
         * @return string
         */
        public static function createUserKey($userId) {
            //cookie算法使用先hmac-sha1,再base64
            $curTime = time();
            $strToSign = $userId . ',' . $curTime;
            //hmac-sha1
            $secretkey = config('constants.AUTH_SECRET_KEY');
            //
            $userkey = base64_encode(hash_hmac("sha1", $strToSign, $secretkey));
            return $userkey;
        }
    参考:https://www.cnblogs.com/fireway/p/5860622.html
  • 相关阅读:
    第07组 Beta冲刺 总结
    第07组 Beta冲刺 (5/5)
    第07组 Beta冲刺 (4/5)
    第07组 Beta冲刺 (3/5)
    第07组 Beta冲刺 (2/5)
    第07组 Beta冲刺 (1/5)
    软工实践个人总结
    第03组 Beta冲刺(5/5)
    第03组 Beta冲刺(4/5)
    第03组 Beta冲刺(3/5)
  • 原文地址:https://www.cnblogs.com/tingfengqieyu/p/11463225.html
Copyright © 2011-2022 走看看