crypto.hmac
Calcule un code d'authentification de message à clé (HMAC).
📝Syntaxe
hexa_mac = crypto.hmac(algorithm, key, message)
hexa_mac = crypto.hmac(algorithm, key, filename, '-file')
📥Arguments d'entrée
Paramètre Description
algorithm chaîne : 'sha256' ou 'sha512' (insensible à la casse, 'sha-256' et 'sha-512' acceptés).
key vecteur uint8 (octets bruts) ou vecteur de caractères (octets UTF-8) : clé secrète, de longueur quelconque.
message vecteur uint8 (octets bruts) ou vecteur de caractères (octets UTF-8) : contenu authentifié.
filename chaîne : fichier existant dont les octets bruts sont authentifiés.
'-file' le troisième argument est un nom de fichier.
📤Arguments de sortie
Paramètre Description
hexa_mac vecteur de caractères : 64 (sha256) ou 128 (sha512) caractères hexadécimaux minuscules.
📄Description

crypto.hmac calcule un HMAC (RFC 2104) avec SHA-256 ou SHA-512 sur les octets exacts d'un message, par exemple pour authentifier une requête d'API ou la charge utile d'un webhook.

Une clé texte est utilisée via ses octets UTF-8 ; passez un vecteur uint8 pour une clé binaire (une clé hexadécimale doit d'abord être convertie). Les clés plus longues que le bloc du hachage sont d'abord hachées, comme l'exige la RFC.

Comparez le résultat à la valeur attendue avec une comparaison en temps constant lorsque la vérification protège une décision de sécurité.

💡Exemples
cas de test 2 de la RFC 4231
R = crypto.hmac('sha256', 'Jefe', 'what do ya want for nothing?')
R = crypto.hmac('sha512', 'Jefe', 'what do ya want for nothing?')
clé binaire et message dans un fichier
key = uint8(repmat(11, 1, 20));
filename = [tempdir(), 'hmac_example.txt'];
filewrite(filename, 'Hi There');
R = crypto.hmac('sha256', key, filename, '-file')
🔗Voir aussi
sha256crypto.sha512crypto.ed25519.sign
Used Functions
Monocypher, picoSHA2
📚Bibliographie
https://www.rfc-editor.org/rfc/rfc2104, https://www.rfc-editor.org/rfc/rfc4231
🕔Historique des versions
Version Description
2.0.0 version initiale
Modifier cette page sur GitHub