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



     





  • 相关阅读:
    如何使用dig命令挖掘域名解析信息
    网络地址转换 NAT 配置
    Win10 安装子系统 GUI 界面
    送给发烧友:Python条件语句的七种写法T
    这是一个可以显示Linux命令的工具
    网页游戏破解 我是武神
    仙侠道破解
    心动最新页游 仙侠道 破解笔记
    通用网页游戏伤害公式。
    mysql: error while loading shared libraries: libmysqlclient.so.16
  • 原文地址:https://www.cnblogs.com/itmanxgl/p/2906d41e276d10bb8428bf948998aaae.html
Copyright © 2011-2022 走看看