HMAC Whirlpool Generator Online
Generate hmac with WHIRLPOOL algorithm
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
<?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");
mac.init(secretKey);
byte[] digest = mac.doFinal(message.getBytes());
String hmac = byteArrayToHexString(digest);
System.out.println("HMAC: " + hmac);
} catch (Exception e) {
e.printStackTrace();
}
}
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) {
sb.append('0');
}
sb.append(Integer.toHexString(v));
}
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);
HMAC_CTX_free(ctx);
free(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;
HMAC_CTX_free(ctx);
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 = hmac.new(key.encode(), msg=message.encode(), digestmod="whirlpool").hexdigest()
print("HMAC: " + hmac)
Example in Golang
package main
import (
"crypto/hmac"
"crypto/sha512"
"fmt"
)
func main() {
message := "Hello, World!"
key := "MySecretKey"
h := hmac.New(sha512.New512_256, []byte(key))
h.Write([]byte(message))
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(sha512.new(), 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")
mac.init(secretKey)
val digest = mac.doFinal(message.toByteArray())
byteArrayToHexString(digest)
} catch (e: Exception) {
e.printStackTrace()
""
}
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) {
sb.append('0')
}
sb.append(Integer.toHexString(v))
}
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)")