Lailton,
You can use these functions from [x]Harbour:
PRG functions:
HB_MD5( <cString> ) -> <cMD5>
Calculates RFC 1321 MD5 digest (128-bit checksum)
Parameters:
<cString> - string variable to calculate MD5
Returns:
ASCII hex MD5 digest as 32-byte string
empty string on error
HB_MD5FILE( <cFileName> ) -> <cMD5>
Calculates RFC 1321 MD5 digest (128-bit checksum) of a file contents
(file size is limited by OS limits only)
Parameters:
<cFileName> - file name
Returns:
ASCII hex MD5 digest as 32-byte string
empty string on error
C functions:
void hb_md5( const void * data, ULONG datalen, char * digest )
Parameters:
data - input byte stream
datalen - input stream length
digest - raw (unformatted) MD5 digest buffer
(at least 16 bytes long)
void hb_md5file( HB_FHANDLE hFile, char * digest )
Parameters:
hFile - file handle
digest - raw (unformatted) MD5 digest buffer
(at least 16 bytes long)