2

私は、ユーザーがファイルをアップロードして Microsoft SQL データベースに保存できるようにする Web サイトを持っています。

データベースには何十万もの画像が含まれており、管理できなくなりつつあります。そのため、これらの画像をデータベースからファイルシステムに抽出し、ファイルの SHA1 ハッシュを生成する powershell スクリプトを作成しました。

$SHA1 = Get-Checksum -アルゴリズム sha1 -ファイル ($Dest + "$i.jpg")

今後は、データベースに画像を保存するのではなく、ファイル システムを使用したいと考えていますが、各ファイルの SHA1 ハッシュを生成する必要があります。

従来のaspまたはasp.net(c#またはvb.net)でのSHA1ファイルハッシュの生成に関するドキュメントを見つけることができませんでした。

特に、文字列のハッシュではなく、ファイルハッシュを生成する方法を知る必要があることに注意してください。

他の誰かがこれを行ったことがありますか、またはそれを行うことができるかどうか、またはどのように行うことができるかを知っていますか? あなたが提供できるサンプルコードは大歓迎です。

ありがとうブラッド

4

1 に答える 1

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);
        }
    }
}

formattedSHA-1 ハッシュの文字列表現が含まれます。また、FileStreamバイト バッファの代わりに を使用することでComputeHash、ハッシュをチャンク単位で計算するため、ファイル全体を一度にロードする必要がなくなり、大きなファイルの場合に役立ちます。

How do I do a SHA1 File Checksum in C#?mgbowenから借りた回答

于 2012-11-23T16:33:46.490 に答える