26

Delphi で文字列の MD5 ハッシュを作成するにはどうすればよいですか?

4

10 に答える 10

29

MD5 ダイジェストが必要で、Indyコンポーネントがインストールされている場合は、次のようにします。

uses SysUtils, IdGlobal, IdHash, IdHashMessageDigest;

with TIdHashMessageDigest5.Create do
try
    Result := TIdHash128.AsHex(HashValue('Hello, world'));
finally
    Free;
end;

最も一般的なアルゴリズムは、Delphi 暗号化パッケージでサポートされています。

  • ハヴァル
  • MD4、MD5
  • 熟したMD-128、熟したMD-160
  • SHA-1、SHA-256、SHA-384、SHA-512、

更新 DCPCryptは現在Warren Postmaによって管理されており、ソースはここにあります。

于 2008-09-12T10:28:23.117 に答える
11

私は通常、David Barton ( City in the Sky ) のDCPCrypt2 ( Delphi Cryptography Package ) を使用します。

また、次の暗号化アルゴリズムも含まれています。

  • フグ
  • キャスト 128
  • キャスト 256
  • DES、3DES
  • 氷、薄氷、氷2
  • 考え
  • 火星
  • ミスティ1
  • RC2、RC4、RC5、RC6
  • Rijndael (新しい AES)
  • お茶
  • ツーフィッシュ

更新 DCPCryptは現在Warren Postmaによって管理されており、ソースはここにあります。

于 2008-09-17T13:30:53.700 に答える
8

これは、承認された devstopfix の回答の修正です。

現在の Indy バージョンでは、文字列とストリームをより簡単にハッシュできます。例:

function MD5String(str: String): String;
begin
  with TIdHashMessageDigest5.Create do
    try
      Result := HashStringAsHex(str);
    finally
      Free;
    end;
end;

HashStringHashStringAsHexHashBytesHashBytesAsHexHashStreamを使用しHashStreamAsHexます。利点は、テキストエンコーディングも指定できることです

于 2015-01-25T03:20:07.763 に答える
5

辞書を使用するだけで、セキュリティを求めていない場合は、次のようにします
。Delphi 2009以降では、文字列のハッシュ値を次のように作成できます。

BobJenkinsHash(Value, Length(Value) * SizeOf(Value), 0)

ここで、Valueは文字列です。

http://docwiki.embarcadero.com/VCL/en/Generics.Defaults.BobJenkinsHash

于 2011-09-14T06:15:32.237 に答える
4

TurboPower ロックボックスは以下をサポートします:

  • MD-5、
  • SHA-1 および
  • 最近公開された SHA-512/224 および SHA-512/256 ハッシュを含む SHA-2 ファミリ全体。
于 2011-12-14T13:21:13.400 に答える
4

Delphi で WindowsCrypto API を使用することもできます。

そこには、すべての CryptoAPI をラップするユニットがあります。現在オープンソースになっている Lockbox を使用することもできます。

最終的には、Delphi でほぼすべてのハッシュ アルゴリズムをサポートできます。Indy の例は、ほとんどのバージョンの Delphi に Indy が含まれているため、Delphi でネイティブに使用できる最も近いものです。残りの部分については、ライブラリを使用するか、さらにコードを記述して CryptoAPI にアクセスするか、自分で実装する必要があります。

于 2008-09-12T16:41:06.920 に答える
1

ICS を使用して、OverbytecsMD5 ユニットにある StrMD5 関数を呼び出すだけです。

その特定の関数に加えて、他のデータ型とシナリオ用の MD5 関数が多数あります。SHA などの他のハッシュ方式もあります。

于 2020-03-09T14:26:39.910 に答える