Les dejo dos funciones para obtener tanto el md5 de los ficheros como de las cadenas md5, las funciones fuero probadas en Delphi 2010 creo que en Delphi 7 cambia un poco la forma de obtenerlo
uses
  SysUtils,IdHashMessageDigest, idHash,classes;

//funcin para obtener el md5 de ficheros como los .exe
function FileMD5(const fileName : string) : string;
 var
   idmd5 : TIdHashMessageDigest5;
   fs : TFileStream;//Es una Clase para leer ficheros como los .exe
 begin
   idmd5 := TIdHashMessageDigest5.Create; //creamos objeto para calcular md5
   fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ; //stream para leer el fichero
   try
     result := idmd5.HashStreamAsHex(fs); //obtenemos md5 del fichero
   finally
   //liberamos los objetos
     fs.Free;
     idmd5.Free;
   end
end;


//funcion para obtener el md5 de cualquier string
function StringMd5(const data : string) : string;
 var
   idmd5 : TIdHashMessageDigest5;
 begin
   idmd5 := TIdHashMessageDigest5.Create;//creamos el objeto
   try
     result := idmd5.HashStringAsHex(data);//retornamos el md5 del string
   finally
     idmd5.Free;//liberamos el objeto
   end
end;


var
ruta,strMd5,cadena:string;
begin
  ruta:='C:\project1.exe';  //ruta del fichero
  strMd5:=FileMD5(ruta); //obtenemos md5
  writeln('El md5 del fichero es ',strMd5);//lo mostramos


  {-------------------------------------------}

  cadena:='hola mundo';//cadena a calcular md5
  strMd5:=StringMd5(cadena);//obtenemos su md5
  writeln('El md5 del string  es ',strMd5);//lo mostramos

  readln;
end.
Skype:crack8111
Responder

Volver a “Fuentes”