Dav*_*man 14
您应该使用DCPcrypt v2并读取缓冲的文件并将SHA hasher与缓冲区一起提供,直到您阅读完整的5GB文件为止.
如果您想知道如何读取缓冲的大文件,请参阅我使用自定义缓冲的文件副本的答案.
所以在概念上(没有真正的delphi代码!):
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;
Run Code Online (Sandbox Code Playgroud)
我会推荐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.