经典ASP或ASP.NET中的SHA1文件哈希

时间:2012-06-22 10:30:29

标签: asp.net file asp-classic sha1

我有一个网站,允许用户上传文件,这些文件又存储在Microsoft SQL数据库中。

该数据库包含数十万张图像,并且变得无法管理。因此我编写了一个powershell脚本,将这些图像从数据库中提取到文件系统,然后生成文件的SHA1哈希:

$ SHA1 = Get-Checksum -Algorithm sha1 -File($ Dest +“$ i.jpg”)

继续我不再希望将图像存储在数据库中,而是使用文件系统,但是我仍然需要生成每个文件的SHA1哈希值。

我无法在经典asp或asp.net(c#或vb.net)中找到有关生成SHA1文件哈希的任何文档。

注意我特别需要知道如何生成 FILE HASHES - 而不是字符串哈希。

有没有其他人这样做或知道是否或如何做到这一点?您可以提供的任何示例代码都将非常感激。

由于 布拉德

1 个答案:

答案 0 :(得分:1)

using (FileStream fs = new FileStream(@"C:\file\location", FileMode.Open))
using (BufferedStream bs = new BufferedStream(fs))
{
    using (SHA1Managed sha1 = new SHA1Managed())
    {
        byte[] hash = sha1.ComputeHash(bs);
        StringBuilder formatted = new StringBuilder(2 * hash.Length);
        foreach (byte b in hash)
        {
            formatted.AppendFormat("{0:X2}", b);
        }
    }
}

formatted包含SHA-1哈希的字符串表示形式。此外,通过使用FileStream而不是字节缓冲区,ComputeHash计算块中的散列,因此您不必一次加载整个文件,这对大文件很有帮助。 / p>

How do I do a SHA1 File Checksum in C#?

mgbowen借来的答案