新しいSHA-3Keccakアルゴリズムで動作するHashLibライブラリ@https://hashlib.codeplex.com/を取得しようとしています。正しいハッシュコードを出力する必要があると思われる単純なコンソールアプリケーションを作成しましたが、そうではありません。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using HashLib;
using System.Threading.Tasks;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
{
string passPhrase = "";
IHash hash = HashFactory.Crypto.SHA3.CreateKeccak512();
HashResult r = hash.ComputeString(passPhrase, System.Text.Encoding.ASCII);
Console.WriteLine(r.ToString().ToLower().Replace("-",""));
Console.WriteLine("{0}, {1}, {2}", hash.BlockSize, hash.HashSize, hash.Name);
Console.ReadLine();
}
}
}
}
アプリケーションは正常にビルドおよび実行されますが、出力は非常に間違っています。他の人のKeccakアルゴリズムの実装を使用すると、異なる結果が得られ、たとえばこのwiki投稿とも一致しません。https://en.wikipedia.org/wiki/SHA-3つまり、明らかに何かが間違っています。
たとえば、テキストを空のままにすると、「df987cfd23fbc92e7e87faaca300ec3fなど」というメッセージが表示されます。ウィキや他のツールは私が取得する必要があると言っている間
"0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e"
、これはまったく異なるものです。もちろん、空でない文字列でも試してみました。
誰か提案がありますか?