超まとめ
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