HMAC Whirlpool Generator Online

Generate hmac with WHIRLPOOL algorithm

Enter the Plain or Cipher Text to convert to hash mac (HMAC) WHIRLPOOL

HMAC Whirlpool Generator Online is a website that provides users with a powerful cryptographic tool to generate cryptographic keys. The website is designed to generate a secure code that can be used to protect data and communications. The generator uses the Whirlpool algorithm, which is a cryptographic hash function. 

The Whirlpool algorithm was developed by the National Institute of Standards and Technology in 2003. It is a cryptographic hash function that is used to generate a unique code for each message. The Whirlpool algorithm is based on the Merkle-Damgård construction, which is a cryptographic technique that is used to create secure hashes. The algorithm has been used in many applications such as secure data storage, digital signatures, and authentication.

HMAC Whirlpool Generator Online provides users with a simple and secure way to generate a secure code. It is easy to use and requires no technical knowledge. The generator has a user-friendly interface and is available in multiple languages. It is also available for both desktop and mobile devices.

The HMAC Whirlpool Generator Online is an ideal tool for users who need to protect their data and communications. It is a secure and reliable way to generate cryptographic keys. The website is easy to use and provides users with a powerful tool to generate secure codes.

Example in PHP


$message = "Hello, World!";
$key = "MySecretKey";

$hmac = hash_hmac("whirlpool", $message, $key);

echo "HMAC: " . $hmac;


Example in Nodejs

const crypto = require('crypto');

const message = "Hello, World!";
const key = "MySecretKey";

const hmac = crypto.createHmac('whirlpool', key).update(message).digest('hex');

console.log("HMAC: " + hmac);

Example in Java

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

public class HMACWhirlpool {
    public static void main(String[] args) {
        String message = "Hello, World!";
        String key = "MySecretKey";
        try {
            Mac mac = Mac.getInstance("HmacWhirlpool");
            SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "HmacWhirlpool");

            byte[] digest = mac.doFinal(message.getBytes());
            String hmac = byteArrayToHexString(digest);
            System.out.println("HMAC: " + hmac);

        } catch (Exception e) {

    private static String byteArrayToHexString(byte[] b) {
        StringBuilder sb = new StringBuilder(b.length * 2);
        for (int i = 0; i < b.length; i++) {
            int v = b[i] & 0xff;
            if (v < 16) {
        return sb.toString().toUpperCase();

Example in C

#include <stdio.h>
#include <string.h>
#include <openssl/hmac.h>

int main() {
    char message[] = "Hello, World!";
    char key[] = "MySecretKey";

    unsigned char *hmac;
    size_t hmac_len;

    hmac_len = EVP_MAX_MD_SIZE;
    hmac = (unsigned char *)malloc(hmac_len);

    HMAC_CTX *ctx = HMAC_CTX_new();

    HMAC_Init_ex(ctx, key, strlen(key), EVP_whirlpool(), NULL);
    HMAC_Update(ctx, message, strlen(message));
    HMAC_Final(ctx, hmac, &hmac_len);

    printf("HMAC: %s\n", hmac);


    return 0;

Example in C++

#include <iostream>
#include <string>
#include <openssl/hmac.h>

int main() {
    std::string message = "Hello, World!";
    std::string key = "MySecretKey";

    unsigned char *hmac;
    size_t hmac_len;

    hmac_len = EVP_MAX_MD_SIZE;
    hmac = new unsigned char[hmac_len];

    HMAC_CTX *ctx = HMAC_CTX_new();

    HMAC_Init_ex(ctx, key.c_str(), key.length(), EVP_whirlpool(), NULL);
    HMAC_Update(ctx, (unsigned char *)message.c_str(), message.length());
    HMAC_Final(ctx, hmac, &hmac_len);

    std::cout << "HMAC: " << hmac << std::endl;

    delete [] hmac;

    return 0;

Example in C#

using System;
using System.Security.Cryptography;

public class HMACWhirlpool 
    public static void Main()
        string message = "Hello, World!";
        string key = "MySecretKey";

        byte[] hmac = new HMACWhirlpool(Encoding.UTF8.GetBytes(key)).ComputeHash(Encoding.UTF8.GetBytes(message));

        string hmacString = BitConverter.ToString(hmac).Replace("-", "").ToLower();

        Console.WriteLine("HMAC: " + hmacString);

Example in Python

import hmac

message = "Hello, World!"
key = "MySecretKey"

hmac =, msg=message.encode(), digestmod="whirlpool").hexdigest()

print("HMAC: " + hmac)

Example in Golang

package main

import (

func main() {
	message := "Hello, World!"
	key := "MySecretKey"

	h := hmac.New(sha512.New512_256, []byte(key))
	hmac := h.Sum(nil)

	fmt.Printf("HMAC: %x\n", hmac)

Example in Dart

import 'dart:convert';
import 'package:crypto/crypto.dart';

void main() {
  String message = "Hello, World!";
  String key = "MySecretKey";

  var hmac = Hmac(, utf8.encode(key)).convert(utf8.encode(message)).toString();

  print("HMAC: $hmac");

Example in Kotlin

import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec

fun main(args: Array<String>) {
    val message = "Hello, World!"
    val key = "MySecretKey"

    val hmac = try {
        val mac = Mac.getInstance("HmacWhirlpool")
        val secretKey = SecretKeySpec(key.toByteArray(), "HmacWhirlpool")

        val digest = mac.doFinal(message.toByteArray())
    } catch (e: Exception) {

    println("HMAC: $hmac")

private fun byteArrayToHexString(b: ByteArray): String {
    val sb = StringBuilder(b.size * 2)
    for (i in b.indices) {
        val v = b[i].toInt() and 0xff
        if (v < 16) {
    return sb.toString().toUpperCase()

Example in Swift

import Foundation
import CommonCrypto

let message = "Hello, World!"
let key = "MySecretKey"

let hmac = HMAC.sign(message: message, algorithm: .whirlpool, key: key)

print("HMAC: \(hmac)")