HMAC(HMACSHA1 - HMACSHA512 ...)が組み込まれています。 しかし、カスタムHashAlgorithmクラスを使ってHMACを作成することは可能ですか?カスタムHashAlgorithmを使用したHMAC
私はHMAC.Create("location")
を試みたが、new HMAC(HashAlgorithm)
のようなコンストラクタがあるかもしれないが、単にNullReferenceException
を投げましたか?
これはHashAlgorithmのコード(Fnv1ハッシュ)です:.NET Frameworkの
public class Fnv1_32 : HashAlgorithm
{
private const uint prime = 0x01000193;
private const uint offsetbasis = 0x811C9DC5;
private uint _Hash;
public Fnv1_32()
{
this.Initialize();
this.HashSizeValue = 32;
}
public override void Initialize()
{
this._Hash = offsetbasis;
}
protected override void HashCore(byte[] array, int ibStart, int cbSize)
{
for (var i = ibStart; i < cbSize; i++)
{
this._Hash *= prime;
this._Hash ^= array[i];
}
}
protected override byte[] HashFinal()
{
return BitConverter.GetBytes(this._Hash);
}
}
私はあなたに確かに1つ言うことができます:このハッシュ関数を持つHMACは安全ではありません。サイズの目立った問題を修正しても、実在する偽造を作成するのは簡単です... – TheGreatContini