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, ...