1

デフォルトのTHash.HashアルゴリズムをデフォルトのSHA-1からMD5に変更するにはどうすればよいですか?

以下は機能しません。

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

編集:

はい、大丈夫です。THashが新しいTurboPowerLockBox3のクラスであるという事実について言及しなかったことをお詫びします。

この省略について、改めてお詫び申し上げます。

とにかくショーンは私が探していた答えをすでに与えています。

皆さん、ありがとうございました

4

2 に答える 2

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;
于 2011-12-14T13:41:01.550 に答える
2

サンプルコードが無効です。変数タイプはTHASH、変数名はSTRINGHASHです。クラスのインスタンスを作成する場合、形式は通常次のとおりです。

var
  StringHash:THash;
begin
  StringHash := THash.Create();
  try
    DoSomethingWithStringHash;
  finally
    StringHash.Free()
  end
end;

例を修正して、詳細を確認してください。

于 2011-12-13T23:47:49.297 に答える