一千萬個為什麽

搜索

如何在運行時更改THash.Hash

如何將默認的THash.Hash algorythm從默認的SHA-1更改為MD5?

以下不起作用:

var
  StringHash: THash;
begin
  StringHash.Create(nil);
  StringHash.Hash := 'MD5';
end;

編輯:

是的你沒事:我沒有提到THash是新TurboPower LockBox 3的一個事實而道歉。

我再次為這個遺漏道歉!

無論如何,肖恩已經給出了我正在尋找的答案。

謝謝你們

最佳答案

假設您指的是 TurboPower Lockbox 的THash組件,您可以選擇運行時的哈希算法如下:

function FindHashOfBananaBananaBanana: TBytes;
var
  StringHash: THash;
  Lib: TCrypographicLibrary;
begin
StringHash := THash.Create( nil);
Lib := TCrypographicLibrary( nil);
try
  StringHash.CryptoLibrary := Lib;
  StringHash.HashId := SHA512_ProgId;//Find constants for other algorithms
                                     // in unit uTPLb_Constants.
  StringHash.HashAnsiString('Banana banana banana');
  SetLength( result, StringHash.HashOutputValue.Size);
  StringHash.HashOutputValue.Read( result[0], StringHash.HashOutputValue.Size);
  StringHash.Burn
finally
  StringHash.Free;
  Lib.Free
  end
end;

轉載註明原文: 如何在運行時更改THash.Hash