Выходные байты / биты HMACSHA256
Мой друг сказал мне использовать алгоритм "HMACSHA256", и я использовал следующий код:
SecretKey signingKey = new SecretKeySpec("123".getBytes(), "HMACSHA256");
Mac mac = Mac.getInstance("HMACSHA256");
mac.init(signingKey);
byte[] digest = mac.doFinal("ABCDEF".getBytes());
System.out.println("HMA : "+digest.length);
Просто хотел знать, что:
1) Вышеуказанная реализация выглядит стандартно "HMACSHA256"?
2) Вывод (дайджест) идет как 256 бит или 16 байтов. Это правильно.
Если мы используем алгоритм HMACSHA256, сколько байтов нам нужно ожидать, чтобы получить в качестве вывода.
1 ответ
Решение
Количество выходных битов для дайджестов HMAC равно битам, сгенерированным базовым алгоритмом.
- Для MD5 это количество битов составляет 128.
- Для SHA-1 это число битов составляет 160.
- Для SHA-256 это количество битов, если 256.
Ваш код выглядит нормально и генерирует правильный размер дайджеста. Вы можете прочитать больше о криптографических хешах здесь.