Выходные байты / биты 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.

Ваш код выглядит нормально и генерирует правильный размер дайджеста. Вы можете прочитать больше о криптографических хешах здесь.

Другие вопросы по тегам