我该如何将MAC数据类型转换为字符串?我可以使用base64将SecretKey数据类型编码为字符串,但对于MAC来说这行不通。
// Generate a secret MAC key
KeyGenerator kg = KeyGenerator.getInstance("HmacSHA1");
SecretKey key = kg.generateKey();
String encodedkey=Base64.getEncoder().encodeToString(key.getEncoded());
// Create and initialize a MAC with the key
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(key);
// Print the key
System.out.println("Key:" + encodedkey);
// Print out the resulting MAC
System.out.println("MAC:" + mac);
我的输出
Key:lnGahJHeKDqMG+c/K8OHx9HiQQl+aqhCNb0QtnDAdhzE3Xs7gP0uXf93ESO9Demrnl0XFCqHVUBsU9oppkmgVQ==
MAC:javax.crypto.Mac@1ce92674
期望的样本输出
Key: lqC5SNoKYPnQRVFxTp2YhvBQpWiZU7sWTjziVXgMmcFkxvBJQA81PoTqrvscOyj05pvm6MBtlvP6gkqJvisiNQ==
MAC: xca73kbvEEZBKwb0aWMhGA==