当前位置: 首页 > 编程笔记 >

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

巫煌
2023-03-14
本文向大家介绍Java加密 消息摘要算法MAC实现详解,包括了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[] key = secretKey.getEncoded();//获得默认密钥
   
   SecretKey restorSecretKey = new SecretKeySpec(key, "HmacMD5");//还原密钥
   Mac mac = Mac.getInstance(restorSecretKey.getAlgorithm());//示例化MAC
   mac.init(restorSecretKey);//初始化MAC
   byte[] hmacMD5Bytes = mac.doFinal(src.getBytes());//执行摘要
   System.out.println("hmacMD5Byte : "+Hex.encodeHexString(hmacMD5Bytes));
  } catch (Exception e) {
   e.printStackTrace();
  } 
 }

2、动态密钥方式:

private static void MAC_JDK_dongtai(){
  try {
   byte[] key = Hex.decodeHex(new char[]{'a','a','a','a','a','a','a','a','a','a'});//动态获得密钥
   
   SecretKey restorSecretKey = new SecretKeySpec(key, "HmacMD5");//还原密钥
   Mac mac = Mac.getInstance(restorSecretKey.getAlgorithm());//示例化MAC
   mac.init(restorSecretKey);//初始化MAC
   byte[] hmacMD5Bytes = mac.doFinal(src.getBytes());//执行摘要
   System.out.println("hmacMD5Byte : "+Hex.encodeHexString(hmacMD5Bytes));
  } catch (Exception e) {
   e.printStackTrace();
  } 
 }

MAC的BC实现:

private static void MAC_BC(){
  HMac hmac = new HMac(new MD5Digest());
  hmac.init(new KeyParameter(org.bouncycastle.util.encoders.Hex.decode("aaaaaaaaaa")));
  hmac.update(src.getBytes(), 0, src.getBytes().length);
  
  byte[] mac_BC_Byte = new byte[hmac.getMacSize()];//执行摘要
  hmac.doFinal(mac_BC_Byte, 0);
  System.out.println("mac_BC_Byte : "+Hex.encodeHexString(mac_BC_Byte));
 }

到今天JAVA中的Base64、对称加密、消息摘要加密的实现总结就完工了,如果哪位对此感兴趣,还望多多交流。(1453296946@qq.com)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Java加密 消息摘要算法SHA实现详解,包括了Java加密 消息摘要算法SHA实现详解的使用技巧和注意事项,需要的朋友参考一下 SHA是消息摘要算法的一种实现方式,前面已经总结过MD2\4\5的实现,接下来就为大家总结一下SHA的实现。 SHA的jdk实现: SHA的BC实现: 对于SHA224,JAVA jdk并没有提供实现,下面是利用BC实现的方法: 对于SHA224还有一种类

  • 本文向大家介绍Java 信息摘要加密MD2、MD4、MD5实现详解,包括了Java 信息摘要加密MD2、MD4、MD5实现详解的使用技巧和注意事项,需要的朋友参考一下 对于用户数据的保密一直是各个互联网企业头疼的事,那如何防止用户的个人信息泄露呢?今天为大家介绍一种最简单的加密方式--信息摘要算法MD。它如何来保护用户的个人信息呢?其实很简单,当获得到用户的信息后,先对其进行加密,然后将加密的结果

  • 本文向大家介绍Java消息摘要算法MAC实现与应用完整示例,包括了Java消息摘要算法MAC实现与应用完整示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java消息摘要算法MAC实现与应用。分享给大家供大家参考,具体如下: 一 介绍 MAC:Message Authentication Code HMAC:keyed-Hash Message Authencication Code,

  • 本文向大家介绍java 对称加密算法实现详解,包括了java 对称加密算法实现详解的使用技巧和注意事项,需要的朋友参考一下 前言 对于信息的加密方式多种多样,之前为大家介绍了一种自己设计的加密方式,有兴趣的朋友可以欣赏一下,欢迎给予指点。今天为大家介绍一下对称加密方式,所谓对称加密指的是加密和解密方式呈对称格式,即解密是加密的逆过程,下面我们就看一下:DES、3DES、AES、PBE这四种方式,他

  • Java安全加密专题文章索引 Java安全加密:对称加密 Java安全加密:非对称加密 Java安全加密:消息摘要Message Digest Java安全加密:数字签名和数字证书 Java安全加密:Https编程 1. 常见算法 MD5(已经被攻破)、SHA(sha1,sha256,sha512)、CRC、SM系列等 2. 使用场景 对用户密码进行md5 加密后保存到数据库里 软件下载站使用消息

  • 本文向大家介绍java实现Base64加密解密算法,包括了java实现Base64加密解密算法的使用技巧和注意事项,需要的朋友参考一下 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就