超まとめ
System.Security.Cryptography.HMACSHA512クラスを使えば、HMAC-SHA512のハッシュを計算できます。
ハッシュを計算したいデータをByte[]にしてコンストラクタ引数に渡せばOK。
using System;
using System.Text;
namespace HMAC_SHA512Sample
{
class Program
{
static void Main(string[] args)
{
HMAC_SHA512();
}
private static void HMAC_SHA512()
{
// HMAC-SHA512を計算する文字列
var testStr = "param1=val1¶m2=val2";
// キーにする文字列
var secretKey = "password";
// 各文字列をバイト配列にする
byte[] data = Encoding.UTF8.GetBytes(testStr);
byte[] keyData = Encoding.UTF8.GetBytes(secretKey);
using (var hmacSha512 = new System.Security.Cryptography.HMACSHA512(keyData))
{
byte[] hashValue = hmacSha512.ComputeHash(data);
Console.WriteLine(BitConverter.ToString(hashValue).Replace("-", "").ToLower());
}
}
}
}
このコードの実行結果は
051464ad12cd03cf6c0f968317dfcededafeb8a267d6da7869e0588aa887bde6f4f0fe2077aed2a32a748c9e2d59ddc2bb7c3f034a4aa9fc9b0752c750daae94
です。
補足
.NET Core 2.1.4で確認しました。
.NET FrameworkでももちろんOK。
参考資料
https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.hmacsha512(v=vs.110).aspx