PDA

Ver la Versión Completa : codigo hash


maco2007
19-10-2007, 21:14:18
hol soy max y disculpen por lo anterior(BarcodeMax08) ahora tengo una duda, como puedo hacer un codigo hash osea Codificarlo y Decodificarlo esta instruccion ocupo para codificar:


uses Registry;

const
Clave = 1978;

function Cifrar(Texto: string; Clave: Longint): string;
var
i: integer;
begin
Result:= '';
RandSeed:= Clave;
for i:= 1 to Length(Texto) do
Result:= Result + IntToHex(Byte(Texto[ i ]) xor Byte(Random(256)),2);
end;


y necesito como volver a decodificarla...,GRACIAS

dec
20-10-2007, 06:42:45
Hola,

Echa un vistazo a este hilo (http://www.clubdelphi.com/foros/showthread.php?t=41830).

maco2007
20-10-2007, 15:28:28
Gracias por la respuesta pero lamentablemente ya lo tengo y yo quero eso mismo pero con codigo hash osea MD5 grcias

dec
20-10-2007, 15:44:50
Hola,

A ver. Tienes un truco escrito también por Domingo Seoane que puede ayudarte a calcular el Hash MD5 (http://www.clubdelphi.com/trucos/index.php?id=402&scroll=0&scrollb=0) de una cadena o archivo. Pero, un "hash" no es revertible (al menos en teoría, tal vez a base de fuerza bruta...), quiere decirse que puedes conseguir el "hash" de una cadena, por ejemplo, pero, a partir del "hash" no puedes conseguir la cadena original. No sé si me explico...

Un "hash" no se usa para cifrar una cadena. Se usa, por ejemplo, para guardar contraseñas en una base de datos. Nunca guardas las contraseñas "en claro", sino que guardas su "hash". A partir de ahí... a partir de una contraseña "en claro" puedes comprobar si el "hash" coincide con el que guardaste, pero, como he dicho, no puedes conseguir la cadena original a partir de su "hash".

seoane
20-10-2007, 17:01:04
Como ya te explico dec, un hash es como una "huella dactilar". Así como una huella dactilar sirve para identificar a una persona, pero no nos dice como es su aspecto, un hash nos permite identificar unos datos binarios pero no nos da información sobre lo que contenían.

Si lo que quieres es cifrar información y luego recuperarla, y además quieres que sea un algoritmo fuerte, seguro y probado te recomiendo que uses, por ejemplo, AES. AES es el algoritmo de cifrado que utiliza el gobierno de los EEUU, así que supongo que es bastante bueno :)

Aquí tienes un ejemplo de cifrado AES 256:
http://delphi.jmrds.com/?q=node/31