Die einfache Implementierung des SHA-3 Keccak Hash an die falsche Ausgabe in C#?

Ich halte es kurz und einfach! Ich Lerne C#, und ich bin versucht zu Holen Sie sich die HashLib Bibliothek @ https://hashlib.codeplex.com/ arbeiten für die neuen SHA-3 Keccak-Algorithmus. Ich habe geschrieben eine einfache Konsole/Win32-Anwendung, die angeblich für die Ausgabe der korrekten hash-code, aber es funktioniert nicht!

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();
            }
        }
    }
}

Die Anwendung baut und betreibt ok, aber die Ausgabe ist sehr falsch. Wenn ich andere Leute 's Implementierungen des Keccak-Algorithmus, bekomme ich unterschiedliche Ergebnisse, und es nicht mit z.B. dieser wiki-Beitrag. https://en.wikipedia.org/wiki/SHA-3 So etwas ist offensichtlich falsch.

Wenn ich aus dem der text leer, wie pro Beispiel, bekomme ich die folgende: "df987cfd23fbc92e7e87faaca300ec3f etc. etc.", während der wiki und anderen tools, die sagen, ich soll mich

"0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e"

,das ist etwas ganz anderes. Ich habe auch versucht es mit nicht-leeren Saiten natürlich.

Hat jemand einen Vorschlag?

Sieht aus wie einer von der Umsetzung oder Ihre check-Wert falsch ist. Es ist möglich, Sie verändert die IV, wenn Sie es mit dem Namen SHA-3-hash-abweichend von Keccak.
sieht aus wie die Werte, die Sie bekommen und waren für SHA-3 -256 ebenso würde ich persönlich update die HashLib und Holen Sie sich die neueste version
David, es tut mir Leid zu sagen, dass der neueste code (changeset 78295) das problem nicht lösen. Wenn ich den folgenden code verwenden, IHash hash = HashFactory.Crypto.SHA3.CreateKeccak512(); HashResult res = hash.ComputeString("", System.Text.- Codierung.ASCII); string-TT = res.ToString(); in meiner VS 2012 IDE, ich bin immer ein Ergebnis wie DF987CFD-23FBC92E-7E87FAAC-A300EC3F-AA1DBADC-678E8EE9-4A830968-F22D9209-64AB402D-C5D0F7B2-0C9644BE-08056555-C789D295-8BDA3DF9-8C94BACC-EA25D3C1, die dasselbe ist wie das problem angegeben, ich bin mir nicht sicher, ob die änderungen inplace Wenn ich den test-Vektor wurde aus der Datei entnommen

InformationsquelleAutor user1933076 | 2012-12-27

Schreibe einen Kommentar