una resueltos recorrer programas lenguaje hechos explicados ensamblador ejercicios ejemplos comparar cadenas cadena assembler delphi hash cryptography md5

resueltos - ¿Cómo hago una cadena con Delphi?



programas hechos en lenguaje ensamblador (8)

El proyecto Spring For Delphi - http://www.spring4d.org - tiene implementación para un número de hashes SHAxxx, hash MD5, y también número de funciones CRC

¿Cómo puedo hacer un hash MD5 de una cadena con Delphi?


Esta es una modificación de la respuesta de devstopfix que fue aceptada.

En la versión actual de Indy puedes hacer hash de cadenas y flujos más fácilmente. Ejemplo:

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

Use HashString , HashStringAsHex , HashBytes , HashBytesAsHex , HashStream , HashStreamAsHex . La ventaja es que también puede especificar una codificación de texto


Si desea un resumen de MD5 y tiene instalados los componentes de Indy , puede hacer esto:

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

Los algoritmos más populares son compatibles con el paquete de criptografía Delphi :

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

La actualización de DCPCrypt ahora es mantenida por Warren Postma y la fuente se puede encontrar here .


Si desea una cadena hash MD5 como hexadecimal y tiene instalado Delphi XE 1 , para que tenga los componentes Indy 10 .5.7 puede hacer esto:

usa 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;


Si todo lo que quiere hacer es usar un diccionario, y no está buscando seguridad, entonces:
En Delphi 2009 y superior, se pueden crear valores hash para cadenas con

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

donde Value es una cadena.

BobJenkinsHash


También puede usar la API de WindowsCrypto con Delphi:

Hay una unidad allí que envuelve todo el CryptoAPI. También puede usar Lockbox, que ahora es de código abierto.

Al final puedes soportar casi cualquier algoritmo Hash con Delphi. El ejemplo de Indy es probablemente el más cercano que obtendrás nativamente en Delphi ya que Indy está incluido con la mayoría de las versiones de Delphi. Para el resto necesitará usar una biblioteca o escribir más código para acceder a CryptoAPI o implementarlo usted mismo.


Usualmente uso DCPCrypt2 ( Paquete de criptografía Delphi ) de David Barton ( City in the Sky ).

También contiene los siguientes algoritmos de cifrado:

  • Blowfish
  • Elenco 128
  • Cast 256
  • DES, 3DES
  • Hielo, Hielo Fino, Hielo2
  • IDEA
  • Marte
  • Misty1
  • RC2, RC4, RC5, RC6
  • Rijndael (el nuevo AES)
  • Serpiente
  • Dos peces

La actualización de DCPCrypt ahora es mantenida por Warren Postma y la fuente se puede encontrar here .


TurboPower Lockbox es compatible con:

  • MD-5,
  • SHA-1 y
  • toda la familia SHA-2, incluidos los hashes SHA-512/224 y SHA-512/256 publicados recientemente.