gpt4 book ai didi

c# - 简单实现 SHA-3 Keccak 散列到 C# 中的错误输出?

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:47 26 4
gpt4 key购买 nike

我正在尝试获取 HashLib 库 @ https://hashlib.codeplex.com/为新的 SHA-3 Keccak 算法工作。我编写了一个简单的控制台应用程序,据说它必须输出正确的哈希码,但它没有!

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 算法实现时,我得到了不同的结果,并且它也不匹配,例如这篇维基帖子。 https://en.wikipedia.org/wiki/SHA-3所以显然有些地方是错误的。

当我将文本留空时,按照示例,我得到以下内容:“df987cfd23fbc92e7e87faaca300ec3f 等等。”而 wiki 和其他工具说我应该得到

“0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e”

,这是完全不同的东西。当然,我也尝试过使用非空字符串。

有人有什么建议吗?

最佳答案

您的 HashLib 版本太旧。如果您查看 recent changes你可以看到测试向量从你得到的变成了你应该得到的。 (当然,算法也发生了变化。)

关于c# - 简单实现 SHA-3 Keccak 散列到 C# 中的错误输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com