hash_hmac_algos în PHP

Returnează lista algoritmilor de hash care pot fi folosiți pentru HMAC (fără cei necriptografici, ca crc32).

Sintaxă
hash_hmac_algos(): array

Ce face hash_hmac_algos

Nu toți algoritmii din hash_algos() sunt potriviți pentru HMAC. Sumele de control (crc32b, adler32) și algoritmii rapizi necriptografici (xxh3, murmur3a, fnv) lipsesc din această listă. hash_hmac aruncă ValueError pentru un algoritm care nu este aici.

Ce returnează

Un tablou cu numele algoritmilor acceptați pentru HMAC.

Exemple

Exemplul 1: Ce poate și ce nu poate fi folosit pentru HMAC

<?php
$hmac = hash_hmac_algos();

foreach (["sha256", "sha3-256", "crc32b", "xxh3"] as $algo) {
    echo $algo . ": " . (in_array($algo, $hmac, true) ? "da" : "nu") . "\n";
}

Rezultat

sha256: da
sha3-256: da
crc32b: nu
xxh3: nu

Greșeli frecvente

  • Alegi pentru HMAC un algoritm rapid, ca xxh3, ca să câștigi viteză. Nu este acceptat, și oricum nu oferă securitate. Folosește sha256.

Comenzi înrudite

  • hash_hmac / hash_equals: Calculează o semnătură HMAC: o amprentă care depinde și de o cheie secretă. Dovedește că datele nu au fost modificate.
  • hash: Calculează amprenta unui text cu algoritmul ales: sha256, sha512, sha3-256, xxh3 și multe altele.