11

こんにちは、5 Gig ファイルで SHA を生成する必要があります

これを行うことができる非文字列ベースの Delphi ライブラリを知っていますか?

4

5 に答える 5

14

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;
于 2009-02-16T13:46:03.037 に答える
5

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でも使用しました。

于 2009-02-16T15:16:40.010 に答える
1

私の記憶が正しければ、Indy にはいくつかのストリーム ベースのハッシュ メソッドが付属しています。

于 2009-02-16T18:32:22.693 に答える
0

OpenSSL 用の Delphi インターフェイスがありますね。

これにより、パフォーマンスが向上するはずです。

于 2009-02-16T13:34:57.853 に答える