class MD5sum
{
static private System.Security.Cryptography.MD5CryptoServiceProvider md5 = null;
public static string gethash(Stream ifs)
{
if (md5 == null)
{
md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
}
Byte[] sum = md5.ComputeHash(ifs);
return BitConverter.ToString(sum).ToLower().Replace("-", "");
}
public static string gethash(string fn)
{
FileStream ifs = File.OpenRead(fn);
string sum = gethash(ifs);
ifs.Close();
return sum;
}
}
[HOW TO] Visual Basic .NET を使用したハッシュ値の計算および比較方法
ハッシュ値による不一致チェックの話が出ているので、目的にあってはいるのですが、それでもMD5ベース。CRCレベルで充分なのですがね。
MD5やSHA1などでハッシュ値を計算する: .NET Tips: C#, VB.NET, Visual Studio
Cryptographical Hashの方ですね。ファイルのシグニチャ作成なので、もっと軽量のものがあればそっちにしたいですね。速度面CPU負荷の問題がなければこれでもOKですが。出力が文字列ベースなので比較に時間がかかるところが難です。
AdvancedFilesInformation by FBE
ファイルのCRC32,MD5を求めるプログラム。アーカイブになっているので、展開してみないと判りません。ソース付きかどうか。
展開してみました。コード付き(VB)です。内容は、まあ、普通のCRC/MD5コードですね。テーブルを使って計算を高速化、ブロックI/Oでファイル読み込みを高速化、ぐらいはしています。サンプルとしては悪くないと思いますが、今回の目的にはいまひとつ、といったところです。
0 件のコメント:
コメントを投稿