序文:
検証コミット フェーズがあるデータ インポートを実行しています。アイデアは次のとおりです。最初のフェーズでは、さまざまなソースからデータを取得し、データベースに対してさまざまな挿入/更新/検証操作を実行できます。コミットはロールバックされますが、「検証ハッシュ/チェックサム」が生成されます。コミット フェーズは同じですが、「検証ハッシュ/チェックサム」が同じ場合、操作はコミットされます。(データベースは適切な分離レベルで実行されます。)
制限:
- 入力の読み取りと操作は、前方読み取り 1 回のみです。
- 大量のデータが存在する可能性があるため、ストリームを事前に作成しないでください (たとえば、MemoryStream への書き込みは望ましくありません) 。(サーバー/負荷で動作しますが、ふりをするメモリは限られています。)
- 「自分で作成」したくない。( Damien による CRC-32 のような利用可能なコードを知っています。これは使用/変更できますが、「標準」を好むでしょう。)
そして、私が(私がいると思う)探しているもの:
入力 + 操作に基づいてハッシュ (SHA1 や MD5 など) またはチェックサム (CRC32 など) を生成する方法。(入力/操作自体をハッシュして、チェックサム生成に適した値にすることもできますが、「Steam に書き込む」ことができると便利です。)
したがって、質問は次のとおりです。
C#でランニングハッシュ(またはチェックサム)を生成するには?
また、Running オペレーション用に変更できる CRC32 実装がありますが、SHAx または MD5 ハッシュの実行についてはどうでしょうか?
アダプターとして使用できる便利な Stream アプローチが欠けていますか?
(批判は大歓迎ですが、該当する場合は上記にも回答してください。また、スレッドは扱いたくないです。;-)