hash_hmac_algos

funkcja

Zwraca listę algorytmów skrótu obsługiwanych przez hash_hmac(). Podzbiór hash_algos() — nie wszystkie algorytmy nadają się do HMAC.

hash_hmac_algos(): array

hash_hmac_algos zwraca tablicę nazw algorytmów dostępnych dla hash_hmac() i hash_init() z flagą HASH_HMAC. Jest to podzbiór hash_algos() — niektóre algorytmy (np. adler32, crc32) nie mają sensu w kontekście HMAC i są wykluczone.

<?php
declare(strict_types=1);

$algorytmy = hash_hmac_algos();
echo count($algorytmy); // 44 (PHP 8.5)

// Pierwsze kilka: md2, md4, md5, sha1, sha224, sha256, ...
echo implode(', ', array_slice($algorytmy, 0, 5));
// wynik: md2, md4, md5, sha1, sha224

// Sprawdzenie przed użyciem hash_hmac():
$wybrany = 'sha3-256';
if (!in_array($wybrany, hash_hmac_algos(), true)) {
    throw new \RuntimeException("{$wybrany} nie jest obsługiwany przez HMAC");
}
$podpis = hash_hmac($wybrany, 'wiadomosc', getenv('KLUCZ'));

// Różnica względem hash_algos():
$wszystkie = hash_algos();
$hmacowe   = hash_hmac_algos();
$tylkoHash = array_diff($wszystkie, $hmacowe);
// $tylkoHash zawiera np.: adler32, crc32, crc32b, crc32c, fnv1a32, ...