using System.Collections.Generic;
using System.Security.Cryptography;
public static Encoding encoding = Encoding.UTF8;
public static void Main()
"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
var binKey = pack(keytest);
var keyByte = encoding.GetBytes(binKey);
using (var hmacsha512 = new HMACSHA512(keyByte))
hmacsha512.ComputeHash(encoding.GetBytes(msg));
hmac = ByteToString(hmacsha512.Hash);
public static string ByteToString(byte[] buff)
for (int i = 0; i < buff.Length; i++)
sbinary += buff[i].ToString("X2");
private static string pack(string input)
return Encoding.Default.GetString(FromHex(input));
public static byte[] FromHex(string hex)
hex = hex.Replace("-", "");
byte[] raw = new byte[hex.Length / 2];
for (int i = 0; i < raw.Length; i++)
raw[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);