• MAC信息摘要


            MAC(Message Authentication Code ,消息认证码算法)是含有密钥散列函数算法,兼容MD和SHA算法的特性,并在此基础上加入了密钥。因此,MAC也称为HMAC。
            MAC算法集合了MD和SHA两大系列消息摘要算法。MD系列有HmacMD2、HmacMD4、HmacMD5三种算法。SHA系列的有HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512这五种算法。MAC算法摘要值的长度与具体的摘要算法的长度一直。
    如HmacMD5即使对应MD5算法的摘要值长度128位。具体如下:


    MAC算法的实现
    1、Java 自带类实现 
          注意:Java自动类仅支持HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384、HmacSHA512这几种算法
          Mac算法是带有密钥的消息摘要算法,所以其实现分两步
          1)创建密钥
          2)获得消息摘要
          具体实现代码如下:
           /**
             *1、创建密钥
             */
            
            //创建对应摘要算法(如MD5SHA1SHA256等)密钥生成器对象KeyGenerator
            KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");
            
            //产生密钥
            SecretKey secretKey = keyGenerator.generateKey();
            
            //得到密钥的字节数组
            //byte[] key = secretKey.getEncoded();
            
            /**
             * 2、根据密钥产生mac摘要
             */
            
            //创建对应摘要算法(如MD5SHA1SHA256等)的Mac实例对象
            Mac mac = Mac.getInstance(secretKey.getAlgorithm());
            
            //初始化该mac实例对象的密钥
            mac.init(secretKey);
            
            //获取mac摘要信息
            byte[]result = mac.doFinal("中国".getBytes());
            System.out.println(toHexString(result));  



     





  • 相关阅读:
    BZOJ_4034 [HAOI2015]树上操作 【树链剖分dfs序+线段树】
    SPOJ QTree【树链剖分】
    BZOJ_1503 [NOI2004]郁闷的出纳员 【Splay树】
    Hibernate学习实例
    Educational Codeforces Round 64 C. Match Points 【二分思想】
    ramn 备份操作
    表值函数--自定义工作日历
    删除win10开始菜单中程序的目录
    C#自定义注释自动生成模板注释
    oralce知识第三章
  • 原文地址:https://www.cnblogs.com/itmanxgl/p/2906d41e276d10bb8428bf948998aaae.html
Copyright © 2020-2023  润新知