package practice;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
public class Task
{
public static void main(String[] args) throws NoSuchAlgorithmException
{
// KeyGenerator generator = KeyGenerator.getInstance("HmacMd5");
// SecretKey secretKey = generator.generateKey();//生成秘钥
// byte[] encoded = secretKey.getEncoded();//秘钥编码-若不支持编码,返回null
//
// SecretKeySpec spec = new SecretKeySpec(encoded,"HmacMd5");
// Mac mac = Mac.getInstance(spec.getAlgorithm());//spec.getAlgorithm()得到此密钥的算法名称
// try
// {
// mac.init(spec);// 用给定的密钥初始化此 Mac 对象。
// byte[] bs = mac.doFinal();//完成 MAC 操作,或者-处理给定的 byte 数组并完成 MAC 操作。
// } catch (InvalidKeyException e)
// {
// e.printStackTrace();
// }
KeyGenerator generator = KeyGenerator.getInstance("DES");
SecureRandom random = new SecureRandom();
generator.init(random);//初始化秘钥生成器
SecretKey key = generator.generateKey();//生成密钥
Mac mac = Mac.getInstance("HmacSHA256");//得到此密钥的Mac对象
try
{
mac.init(key);//用给定密钥初始化mac对象
String msg = "Hi world!";
byte[] bytes = mac.doFinal(msg.getBytes());//完成mac操作
System.out.println(new String(bytes));
} catch (InvalidKeyException e)
{
e.printStackTrace();
}
}
}
KeyGenerator对称密钥加密 MAC(消息认证码)
最新推荐文章于 2024-04-06 18:39:26 发布