0
我正在运行IBM教程中的一个示例,该教程有一个简单示例,用于在给定纯文本上生成MAC。代码如下:奇数格式的消息验证代码输出
public static void main(String[] args) throws Exception {
//
// check args and get plaintext
if (args.length != 1) {
System.err
.println("Usage: java MessageAuthenticationCodeExample text");
System.exit(1);
}
byte[] plainText = args[0].getBytes("UTF8");
//
// get a key for the HmacMD5 algorithm
System.out.println("\nStart generating key");
KeyGenerator keyGen = KeyGenerator.getInstance("HmacMD5");
SecretKey MD5key = keyGen.generateKey();
System.out.println("Finish generating key");
//
// get a MAC object and update it with the plaintext
Mac mac = Mac.getInstance("HmacMD5");
mac.init(MD5key);
mac.update(plainText);
//
// print out the provider used and the MAC
System.out.println("\n" + mac.getProvider().getInfo());
System.out.println("\nMAC: ");
System.out.println(new String(mac.doFinal(), "UTF8"));
}
这一切都很好,但与字符串ARG运行它“这是一个测试”我得到以下输出:
在实际的教程中的MAC输出格式更好,例如
MAC:
Dkdj47x4#[email protected]#n8a-x>
,很好,我指的是我真正认识的角色!
我认为使用“UTF8”参数服务于这个目的,但我可能错了,所以任何人都可以告诉我如何得到输出格式如上?