1

みんなおはよう、

C# で MD5 ファイル整合性チェック ツールに取り組んでいます。

ファイルに MD5 チェックサム値が与えられるまでにどのくらいかかりますか? たとえば、2 GB の .mpg ファイルを取得しようとすると、毎回約 5 分以上かかります。これは長すぎるようです。

私はただせっかちなのですか?

以下は私が実行しているコードです

public string getHash(String @fileLocation)
    {
        FileStream fs = new FileStream(@fileLocation, FileMode.Open);

        HashAlgorithm alg = new HMACMD5();
        byte[] hashValue = alg.ComputeHash(fs);

        string md5Result = "";

        foreach (byte x in hashValue)
        {
            md5Result += x;
        }           

        fs.Close();           

        return md5Result;           
    }

任意の提案をいただければ幸いです。

よろしく

4

1 に答える 1

7

最も効率的な方法でファイルハッシュ値を計算する方法については、こちらをご覧ください。基本的にはaにラップFileStreamし、それをオーバーロードBufferedStreamにフィードする必要があります。HMACMD5.ComputeHash(Stream)

HashAlgorithm hmacMd5 = new HMACMD5();
byte[] hash;

using(Stream fileStream = new FileStream(fileLocation, FileMode.Open))
    using(Stream bufferedStream = new BufferedStream(fileStream, 1200000))
        hash = hmacMd5.ComputeHash(bufferedStream);
于 2009-08-28T09:15:59.467 に答える