質問はそれをすべて言います。このコード
string hash = "";
using (var md5 = System.Security.Cryptography.MD5.Create())
{
hash = Convert.ToBase64String(md5.ComputeHash(streamReader.BaseStream));
}
常に同じハッシュを返します。
BaseStream からすべてのデータを MemoryStream に渡すと、毎回一意のハッシュが得られます。ランニングも同じ
string hash = "";
using (var md5 = System.Security.Cryptography.MD5.Create())
{
hash = Convert.ToBase64String(md5.ComputeHash(
Encoding.ASCII.GetBytes(streamReader.ReadToEnd())));
}
2 番目の方が実際には高速ですが、これは悪い習慣だと聞いています。
私の質問は、ComputeHash(stream) を使用する適切な方法は何ですか。私にとっては、ストリーム内のデータに関係なく、常に(つまり、プログラムを再起動しても、参照をハッシュするだけではないという意味です)、同じハッシュを返します。