【问题标题】:SHA1 File Hash in Classic ASP or ASP.NET经典 ASP 或 ASP.NET 中的 SHA1 文件哈希
【发布时间】:2012-06-24 15:39:28
【问题描述】:

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

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

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

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

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

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

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

谢谢 布拉德

【问题讨论】:

标签: asp.net file asp-classic sha1


【解决方案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 以块的形式计算哈希,因此您不必一次性加载整个文件,这对大文件很有帮助。

答案借自mgbowenHow do I do a SHA1 File Checksum in C#?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    相关资源
    最近更新 更多