当前位置:  开发笔记 > 编程语言 > 正文

Delphi:如何计算大文件的SHA哈希值

如何解决《Delphi:如何计算大文件的SHA哈希值》经验,为你挑选了2个好方法。

嗨我需要在5 Gig文件上生成SHA

你知道一个非字符串的Delphi库可以做到这一点吗?



1> Davy Landman..:

您应该使用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;



2> PetriW..:

我会推荐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.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有