如何创建下载的文本文件的SHA256散列
问题描述:
我有一个项目,可以将URL传到一个文件(例如www.documents.com/docName.txt),我想为该文件创建一个散列。我怎么做到这一点。
I have a project where I get the url to a file (e.g. www.documents.com/docName.txt) and I want to create a hash for that file. How can I do this.
FileStream filestream;
SHA256 mySHA256 = SHA256Managed.Create();
filestream = new FileStream(docUrl, FileMode.Open);
filestream.Position = 0;
byte[] hashValue = mySHA256.ComputeHash(filestream);
Label2.Text = BitConverter.ToString(hashValue).Replace("-", String.Empty);
filestream.Close();
这是我必须创建散列的代码。但看到它如何使用文件流它使用存储在硬盘驱动器上的文件(例如c:/documents/docName.txt)但我需要它使用URL到文件而不是驱动器上文件的路径。 p>
This is the code i have to create a hash. But seeing how it uses filestream it uses files stored on the hard drive (e.g. c:/documents/docName.txt) But i need it to work with an url to a file and not the path to a file on the drive.
答
要下载文件,请使用:
To download the file use:
string url = "http://www.documents.com/docName.txt";
string localPath = @"C://Local//docName.txt"
using (WebClient client = new WebClient())
{
client.DownloadFile(url, localPath);
}
然后阅读您喜欢的文件:
then read the file like you have:
FileStream filestream;
SHA256 mySHA256 = SHA256Managed.Create();
filestream = new FileStream(localPath, FileMode.Open);
filestream.Position = 0;
byte[] hashValue = mySHA256.ComputeHash(filestream);
Label2.Text = BitConverter.ToString(hashValue).Replace("-", String.Empty);
filestream.Close();