こんにちは、5 Gig ファイルで SHA を生成する必要があります
これを行うことができる非文字列ベースの Delphi ライブラリを知っていますか?
DCPcrypt v2を使用して、バッファリングされたファイルを読み取り、完全な 5GB ファイルを読み取るまで、SHA ハッシャーにバッファをフィードする必要があります。
バッファリングされた大きなファイルを読み取る方法を知りたい場合は、カスタム バッファリングを使用したファイル コピーに関する私の回答を参照してください。
コンセプトでは(実際のデルファイコードはありません!):
function GetShaHash(const AFilename: String)
begin
sha := TSHAHasher.Create;
SetLength(Result, sha.Size);
file := OpenFile(AFilename, GENERIC_READ);
while not eof file do
begin
BytesRead := ReadFile(file, buffer[0], 0, 1024 * 1024);
sha.Update(buffer[0], BytesRead);
end;
sha.Final(Result[0]);
CloseFile(file);
end;
Wolfgang Ehrhardt の CRC/Hash をお勧めします。
http://home.netsurf.de/wolfgang.ehrhardt/
高速で、「最新の Pascal (TP 5/5.5/6、BP 7、VP 2.1、FPC 1.0/2.0/2.2) および Delphi バージョン (V1 から V7/9/10 まででテスト済み) でコンパイルできます」。
D11/D12でも使用しました。
私の記憶が正しければ、Indy にはいくつかのストリーム ベースのハッシュ メソッドが付属しています。
OpenSSL 用の Delphi インターフェイスがありますね。
これにより、パフォーマンスが向上するはずです。