Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Cryptographic hash-based message authentication code used to verify data integrity and authenticity
ResourceFunction["HMAC"][expr, key] calculates message authentication code for expr using secret key key and the SHA256 hash function. | |
ResourceFunction["HMAC"][expr, key, hash] calculates message authentication code for expr using secret key key and hash function hash. |
| expr | byte representation obtained by BinarySerialize |
| "string" | bytes in the UTF-8 representation of string |
| ByteArray[…] | literal bytes in the byte array |
| "MD2" | 128-bit MD2 code |
| "MD4" | 128-bit MD4 code |
| "MD5" | 128-bit MD5 code |
| "SHA" | 160-bit SHA-1 code |
| "SHA224" | 224-bit SHA code |
| "SHA256" | 256-bit SHA code (default) |
| "SHA384" | 384-bit SHA code |
| "SHA512" | 512-bit SHA code |
| "RIPEMD160" | 160-bit RIPEMD code |
| "RIPEMD160SHA256" | RIPEMD-160 following SHA-256 (as used in Bitcoin) |
| "SHA256SHA256" | double SHA-256 code (as used in Bitcoin) |
| "SHA3-224" | 224-bit SHA3 code |
| "SHA3-256" | 256-bit SHA3 code |
| "SHA3-384" | 384-bit SHA3 code |
| "SHA3-512" | 512-bit SHA3 code |
| "Keccak224" | 224-bit Keccak code |
| "Keccak256" | 256-bit Keccak code |
| "Keccak384" | 384-bit Keccak code |
| "Keccak512" | 512-bit Keccak code |
Compute message authentication code using the default SHA256 hash and a secret key:
| In[1]:= |
| Out[1]= | ![]() |
| In[2]:= |
| Out[2]= |
Compute a SHA3-based message authentication code:
| In[3]:= |
| In[4]:= |
| Out[12]= |
Compute HMAC using a password as a key:
| In[13]:= |
| Out[13]= |
Use a ByteArray key directly:
| In[14]:= |
| In[15]:= |
| Out[15]= |
For ByteArray or string message, literal bytes are used in HMAC computation:
| In[16]:= |
| In[17]:= |
| Out[17]= |
Use BaseEncode to convert byte array output to string encodings:
| In[18]:= |
| In[19]:= |
| Out[19]= |
| In[20]:= |
| Out[20]= |
This work is licensed under a Creative Commons Attribution 4.0 International License