如何将默认的 THash.Hash 算法从默认的 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,变量名称为 STRINGHASH。当你构造一个类的实例时,格式通常是:
var
StringHash:THash;
begin
StringHash := THash.Create();
try
DoSomethingWithStringHash;
finally
StringHash.Free()
end
end;
修复您的示例并返回更多详细信息。