zoukankan      html  css  js  c++  java
  • 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));  



     





  • 相关阅读:
    软件开发 [CJOJ 1101] [NOIP 模拟]
    OI中卡常数技巧
    疫情控制 [NOIP2012]
    开车旅行 [NOIP 2012]
    观光公交 [NOIP 2011] [思维推导]
    选择客栈 [NOIP 2011]
    2016级算法期末上机-F.中等·AlvinZH's Fight with DDLs II
    2016级算法期末上机-E.中等·ModricWang's Fight with DDLs II
    2016级算法期末上机-D.简单·AlvinZH's Fight with DDLs I
    2016级算法期末上机-C.简单·Bamboo's Fight with DDLs III
  • 原文地址:https://www.cnblogs.com/itmanxgl/p/2906d41e276d10bb8428bf948998aaae.html
Copyright © 2011-2022 走看看