Я тестирую свой Hmac с тестовыми векторами из http://tools.ietf.org/html/rfc4231 а>
Но в контрольном примере 3 «Проверка с общей длиной ключа и данных, превышающей 64 байта (= размер блока SHA-224 и SHA-256)». Я получаю другой дайджест, чем правильный.
byte[] key = hexify("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
byte[] data = hexify("dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd");
byte[] correct = hexify("773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe");
// Create digest
SecretKey macKey = new SecretKeySpec(key, "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(macKey);
byte[] digest = mac.doFinal(data);
Есть идеи, почему они стали другими? Что я пропустил? Я очень новичок в этом.
// Hex encoded
a5418172bb54bf71f3ec28d1c9f34c48da17007eac4d0ca9e2f8ab54b91603e8
773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe