Вопрос

Мой друг сказал мне использовать «Hmacsha256» Algo, и я использовал приведенный ниже код:

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 Algo, сколько байтов нам нужно ожидать, что вы станете.

Это было полезно?

Решение

Количество выходных битов для дайджестов HMAC равно битам, генерируемым базовым алгоритмом.

  • Для MD5 это количество битов составляет 128.
  • Для SHA-1 это количество битов составляет 160.
  • Для SHA-256 это количество битов, если 256.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top