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));  



     





  • 相关阅读:
    关于android 代码生成布局中遇到的一些问题
    关于选择移动开发平台(android,ios,wp7)的一些看法
    如何成为一个C++高级程序员(转帖)
    最新Windows平台下Android源码的下载(转+原)
    峨眉之巅放歌
    孝感人间
    迁芸(帮客户名字作诗)
    载春
    杨美花(帮客户名字作诗)
    人生几度温泉夜
  • 原文地址:https://www.cnblogs.com/itmanxgl/p/2906d41e276d10bb8428bf948998aaae.html
Copyright © 2011-2022 走看看