簡體   English   中英

Delphi計算TStream哈希/校驗和

[英]Delphi calculate TStream hash/checksum

我正在尋找一種計算TStream(TMemoryStream)校驗和的快速方法。 目的是存儲散列,並將其用於檢測某些操作后是否更改了校驗和。

這是我的代碼:

function GetChecksum(const Stream: TStream): String;
var 
  MD5: TIdHashMessageDigest5;
begin
  MD5 := TIdHashMessageDigest5.Create;
  try
      Result := MD5.HashStreamAsHex(Stream);
  finally
      MD5.Free;
  end;
end;

它可以工作,但是流很大會有點慢。

有一種快速的方法來計算流校驗和嗎?

此代碼計算MD5-這是加密哈希,相當復雜且緩慢。

對於校驗和,您可以嘗試使用更簡單的算法,例如BobJenkinsHash (S ystem.Hash.THashBobJenkins.GetHashValue )。

您還可以檢查MD5的Spring4dDCPCrypt實現的性能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM