Подтвердить что ты не робот

Как сделать хэш строку с Delphi?

Как сделать хэш MD5 строки с Delphi?

4b9b3361

Ответ 1

Если вы хотите получить дайджест MD5 и установите Indy, вы можете сделать это:

uses SysUtils, IdGlobal, IdHash, IdHashMessageDigest;

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

Самые популярные алгоритмы поддерживаются в Delphi Cryptography Package:

  • Haval
  • MD4, MD5
  • RipeMD-128, RipeMD-160
  • SHA-1, SHA-256, SHA-384, SHA-512,
  • Tiger

Обновление DCPCrypt теперь поддерживается Warren Postma, и источник можно найти здесь.

Ответ 2

Если вам нужна строка MD5 hash как hexadeciamal, и у вас установлен Delphi XE 1, поэтому у вас есть Indy 10.5.7 компоненты, которые вы может сделать это:

использует IdGlobal, IdHash, IdHashMessageDigest;

class function getMd5HashString(value: string): string;
var
    hashMessageDigest5 : TIdHashMessageDigest5;
begin
    hashMessageDigest5 := nil;
    try
        hashMessageDigest5 := TIdHashMessageDigest5.Create;
        Result := IdGlobal.IndyLowerCase ( hashMessageDigest5.HashStringAsHex ( value ) );
    finally
        hashMessageDigest5.Free;
    end;
end;

Ответ 3

Я обычно использую DCPCrypt2 (Delphi Cryptography Package) от Дэвида Бартона (Город в небе).

Он также содержит следующие алгоритмы шифрования:

  • Blowfish
  • Cast 128
  • Листинг 256
  • DES, 3DES
  • Лед, тонкий лед, лед2
  • IDEA
  • Марс
  • misty1
  • RC2, RC4, RC5, RC6
  • Rijndael (новый AES)
  • Serpent
  • Чай
  • Twofish

Обновление DCPCrypt теперь поддерживается Warren Postma, и источник можно найти здесь.

Ответ 4

Если все, что вы хотите сделать, это использовать словарь, и вы не ищете безопасности, то:
В Delphi 2009 и выше значения хэша для строк могут быть созданы с помощью

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

где Value - строка.

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

Ответ 5

TurboPower Lockbox поддерживает:

  • MD-5,
  • SHA-1 и
  • весь семейство SHA-2, включая недавно опубликованные хэши SHA-512/224 и SHA-512/256.

Ответ 6

Spring Для проекта Delphi - http://www.spring4d.org - имеет реализацию для ряда хэшей SHAxxx, хеша MD5, а также числа CRC функции

Ответ 7

Вы также можете использовать API WindowsCrypto с Delphi:

Там есть единица, которая обертывает все CryptoAPI. Вы также можете использовать Lockbox, который теперь является открытым исходным кодом.

В конце концов вы можете поддерживать практически любые алгоритмы Hash с помощью Delphi. Пример Indy, вероятно, ближе всего к Delphi, поскольку Indy включен в большинство версий Delphi. В остальном вам нужно либо использовать библиотеку, либо написать еще один код для доступа к CryptoAPI или реализовать его самостоятельно.

Ответ 8

Это модификация ответа devstopfix, который был принят.

В текущей версии Indy вы можете упростить хэш-строки и потоки. Пример:

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

Используйте HashString, HashStringAsHex, HashBytes, HashBytesAsHex, HashStream, HashStreamAsHex. Преимущество состоит в том, что вы также можете указать текстовое кодирование