JavaでHMACを使ってみる

使い方はこんな感じでいいのかな?

// HMAC-MD5 や HMAC-SHA1 のテストケースが以下のURLにあります。
// http://www.ipa.go.jp/security/rfc/RFC2202JA.html
{
	Key key = new SecretKeySpec("Jefe".getBytes("UTF-8"), "HmacMD5");
	Mac mac = Mac.getInstance(key.getAlgorithm());
	mac.init(key);
	byte[] digest = mac.doFinal("what do ya want for nothing?".getBytes());
	assertEquals("750c783e6ab0b503eaa86e310a5db738", dumpToHex(digest));
}
{
	Key key = new SecretKeySpec("Jefe".getBytes("UTF-8"), "HmacSHA1");
	Mac mac = Mac.getInstance(key.getAlgorithm());
	mac.init(key);
	byte[] digest = mac.doFinal("what do ya want for nothing?".getBytes());
	assertEquals("effcdf6ae5eb2fa2d27416d5f184df9c259a7c79", dumpToHex(digest));
}

とりあえずテストケースは通ったので間違ってないっぽい。