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);
可执行文件的哈希代码是字符串,而不是有效的可执行文件。如果你想存储哈希代码,那么把它写到一个文本文件中,如下所示:
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文件的最后一个字节来检索哈希。
你需要了解什么是哈希算法。它不能用于你想要的目的。哈希无法反转以获取原始内容。这将是一个非常棒的数据压缩。