C#接收并编写了哈希代码

本文关键字:哈希 代码 | 更新日期: 2023-09-27 18:26:21

我创建了一个程序来接收.exe文件的哈希代码。与streamwriter相比,我将其写入了一个.exe文件。如果我想打开它的.exe,我会得到错误:不是有效的win32应用程序。

我能对哈希做些什么?是否可以从中创建一个有效的.exe文件。

非常感谢!

byte[] hash;
using (Stream stream = File.OpenRead(@"C:'Program files'CCleaner'CCleaner.exe"))
{
    hash = SHA1.Create().ComputeHash(stream);
}
string base64Hash = Convert.ToBase64String(hash);
Console.WriteLine(base64Hash);
StreamWriter myWriter = new StreamWriter(@"C:'Users'Win7'Desktop'Hash.exe");
myWriter.Write(base64Hash);

C#接收并编写了哈希代码

可执行文件的哈希代码是字符串,而不是有效的可执行文件。如果你想存储哈希代码,那么把它写到一个文本文件中,如下所示:

byte[] hash;
using (Stream stream = File.OpenRead(@"C:'Program files'CCleaner'CCleaner.exe"))
{
    hash = SHA1.Create().ComputeHash(stream);
}
string base64Hash = Convert.ToBase64String(hash);
Console.WriteLine(base64Hash);
StreamWriter myWriter = new StreamWriter(@"C:'Users'Win7'Desktop'Hash.txt");
myWriter.Write(base64Hash);

此错误的原因:

我得到错误:不是一个有效的win32应用程序

您正在覆盖应用程序的开头。虽然您可以任何内容附加到大多数exe文件,但覆盖数据是不起作用的。

如果你像这样附加散列:

StreamWriter myWriter = new StreamWriter(@"C:'Users'Win7'Desktop'Hash.exe", true);

应用程序应该正常运行。在此应用程序中,您可以访问exe文件的最后一个字节来检索哈希。

你需要了解什么是哈希算法。它不能用于你想要的目的。哈希无法反转以获取原始内容。这将是一个非常棒的数据压缩。