MACs是什么意思,前提是和密码学相关的

MACs是什么意思,前提是和密码学相关的,第1张

MAC(Message Authentication Code 消息谁码算法)
MAC算法结合了MD5和SHA算法的优势, 并加入了密钥的支持, 是一种更为安全的消息摘要算法

1 环境

jdk16
commons-codec-14jar

2 代码
import javaxcryptoKeyGenerator;
import javaxcryptoMac;
import javaxcryptoSecretKey;
import javaxcryptospecSecretKeySpec;
import orgapachecommonscodecbinaryHex;
public class MACCipher {

public static byte[] initHmacMD5Key() throws Exception{
// 初始化KeyGenerator
KeyGenerator kg = KeyGeneratorgetInstance("HmacMD5");
//产生密钥
SecretKey secretKey = kggenerateKey();
//获得密钥
return secretKeygetEncoded();
}

public static byte[] encodeHmacMD5(byte[] data, byte[] key)throws Exception{
// 还原密钥
SecretKey secretKey = new SecretKeySpec(key, "HmacMD5");
// 实例化Mac
Mac mac = MacgetInstance(secretKeygetAlgorithm());
// 初始化Mac
macinit(secretKey);
// 执行消息摘要
return macdoFinal(data);
}

public static String hmacmd5Hex(byte[] data, byte[] key)throws Exception{
return HexencodeHexString(encodeHmacMD5(data, key));
}

public static byte[] initHmacSHA512Key()throws Exception{
// 初始化KeyGenerator
KeyGenerator kg = KeyGeneratorgetInstance("HmacSHA512");
//产生密钥
SecretKey secretKey = kggenerateKey();
//获得密钥
return secretKeygetEncoded();
}

public static byte[] encodeHmacSHA512(byte[] data, byte[] key)throws Exception{
// 还原密钥
SecretKey secretKey = new SecretKeySpec(key, "HmacSHA512");
// 实例化Mac
Mac mac = MacgetInstance(secretKeygetAlgorithm());
// 初始化Mac
macinit(secretKey);
// 执行消息摘要
return macdoFinal(data);
}

public static String hmacsha512Hex(byte[] data, byte[] key)throws Exception{
return HexencodeHexString(encodeHmacSHA512(data, key));
}
}

3 测试代码

String macmd5Data = MACCipherhmacmd5Hex("HmacMD5编码"getBytes(), MACCipherinitHmacMD5Key());
Systemoutprintln(macmd5Data);
String macsha512Data = MACCipherhmacsha512Hex("HmacSHA512编码"getBytes(), MACCipherinitHmacSHA512Key());
Systemoutprintln(macsha512Data);

以上就是关于MACs是什么意思,前提是和密码学相关的全部的内容,包括:MACs是什么意思,前提是和密码学相关的、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:优选云

原文地址:https://54852.com/mama/1322758.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-10-20
下一篇2023-10-20

发表评论

登录后才能评论

评论列表(0条)

    保存