如何将默认的THash.Hash algorythm从默认的SHA-1更改为MD5?
以下不起作用:
var
StringHash: THash;
begin
StringHash.Create(nil);
StringHash.Hash := 'MD5';
end;
是的,你没事:我为没有提到THash是新TurboPower LockBox 3的一类而道歉。
我再次为此遗漏道歉!
无论如何,肖恩已经给出了我想要的答案。
谢谢大家
答案 0 :(得分: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;
答案 1 :(得分:2)
您的示例代码无效。变量类型是THASH,变量名称是STRINGHASH。构造类的实例时,格式通常为:
var
StringHash:THash;
begin
StringHash := THash.Create();
try
DoSomethingWithStringHash;
finally
StringHash.Free()
end
end;
修复您的示例并返回更多详细信息。