MAC算法之消息摘要算法HmacMD5的实现

MAC算法之消息摘要算法HmacMD5的实现

MAC算法主要用于消息验证

以下为算法实现:

import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.xml.bind.annotation.adapters.HexBinaryAdapter; 

public class Main { 

  static String src = "Hello,sahadev!"; 

  public static void main(String[] args) {
    HmacMD5();
  } 

  public static void HmacMD5() {
    try {
      // 获取密钥生成器
      KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");
      // 生成密钥
      SecretKey generateKey = keyGenerator.generateKey(); 

      // 获取"Message Authentication Code" (MAC) algorithm实例
      Mac instance = Mac.getInstance(generateKey.getAlgorithm());
      // 根据生产的密钥初始化该实例
      instance.init(generateKey); 

      // 加密消息
      byte[] doFinal = instance.doFinal(src.getBytes());
      // 输出加密后的消息
      System.out.println("HmacMD5 : "
          + new HexBinaryAdapter().marshal(doFinal)); 

    } catch (Exception e) {
      e.printStackTrace();
    }
  } 

}

以上就是MAC算法之消息摘要算法HmacMD5的实现,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • MAC算法之消息摘要算法HmacMD5的实现

    MAC算法之消息摘要算法HmacMD5的实现 MAC算法主要用于消息验证 以下为算法实现: import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.xml.bind.annotation.adapters.HexBinaryAdapter; public class Main { static String src = "Hello,sahadev

  • Java消息摘要算法MAC实现与应用完整示例

    本文实例讲述了Java消息摘要算法MAC实现与应用.分享给大家供大家参考,具体如下: 一 介绍 MAC:Message Authentication Code HMAC:keyed-Hash Message Authencication Code,含有密钥的散列函数算法. 融合MD.SHA MD系列:HmacMD2.HmacMD4.HmacMD5 SHA系列:HmacSHA1.HmacSHA224.HmacSHA256.HmacSHA384.HmacSHA512 应用:SecureCRT 二 参

  • Java加密 消息摘要算法MAC实现详解

    MAC是消息摘要算法的第三种实现方式,另外两种方式分别为:MD2\4\5.SHA. MAC的jdk实现:1.默认密钥方式 private static void MAC_JDK(){ try { KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");//初始化KeyGenerator SecretKey secretKey = keyGenerator.generateKey();//产生密钥 byte[] ke

  • Python和GO语言实现的消息摘要算法示例

    常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现. 一.python消息摘要示例 代码如下: 复制代码 代码如下: #! /usr/bin/python '''       File      : testHash.py       Author    : Mike       E-Mail    : Mike_Zhang@live.com ''' import hashlib src = raw_input(

  • Java实现MD5消息摘要算法

    首先,必须要强调的一点,MD5不是加密算法,而是消息摘要算法,具有不可逆性.字符串通过MD5处理后会生成128位的二进制串.我们通常会将其转化为16进制串,用于登录密码验证. 加密算法与消息摘要算法区别: 加密算法具有相应地解密算法,通过加密算法对信息进行加密后,采用解密算法能够获取到原始数据. 采用摘要算法得到的数据是不完整的,无法反向获取到原始数据. 下面直接贴代码: import java.security.MessageDigest;//Java类库已经支持MD5消息摘要 public

  • Java MD5消息摘要算法原理及实现代码

    md5 属于hash算法一类,是不可逆的消息摘要算法.与对称加密和非对称加密算法不一样,不需要加密密钥. 注意: md5不是加密算法,只是将数据进行散列计算后生成一个唯一值的算法,没有加密密钥也没有解密密钥. 下面说的md5加密是指对密码加密成32位长度字符串的过程 md5可以用于密码的加密,如123456,加密后的字符串,在很大条件下不能被电脑强行破解出来,只能通过字典匹配的方式同样用md5加密后的字符串进行比较破解. MessageDigest消息摘要是安全的单向散列函数,它将任意大小的字符

  • Java加密 消息摘要算法SHA实现详解

    SHA是消息摘要算法的一种实现方式,前面已经总结过MD2\4\5的实现,接下来就为大家总结一下SHA的实现. SHA的jdk实现: private static void SHA_JDK(){ try { MessageDigest digest = MessageDigest.getInstance("SHA");//我们可以通过SHA\SHA-1\SHA-384\SHA-256\SHA-512来获得不同的消息摘要密钥 digest.update(src.getBytes()); S

  • python基础教程之python消息摘要算法使用示例

    复制代码 代码如下: #! /usr/bin/python'''      File      : testHash.py      Author    : Mike'''import hashlibsrc = raw_input("Input string : ")funcNameList = ["MD5","SHA1","SHA224","SHA256","SHA384","

  • 详解Java中实现SHA1与MD5加密算法的基本方法

    SHA1 package com.stone.security; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.security.DigestInputStream; import java.security.DigestOutputStream; import java.s

  • Python内置模块hashlib、hmac与uuid用法分析

    本文实例讲述了Python内置模块hashlib.hmac与uuid用法.分享给大家供大家参考,具体如下: 一.hashlib md5和sha算法通过消息摘要算法生成定长的消息摘要,消息摘要算法是不可逆的.但同一段消息通过摘要算法后得到的值是一样的,可一通过比对消息摘要验证数据的完整性. sha算法比MD5算法安全,但所需的时间也稍长. 1.原始消息摘要 import hashlib # ######## md5 ######## hash = hashlib.md5() hash.update

随机推荐