| 1 |
Attribute VB_Name = "MD5" |
| 2 |
' MD5.bas - wrapper for RSA MD5 DLL |
| 3 |
' derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm |
| 4 |
' Functions: |
| 5 |
' MD5String (some string) -> MD5 digest of the given string as 32 bytes string |
| 6 |
' MD5File (some filename) -> MD5 digest of the file's content as a 32 bytes string |
| 7 |
' returns a null terminated "FILE NOT FOUND" if unable to open the |
| 8 |
' given filename for input |
| 9 |
' Bugs, complaints, etc: |
| 10 |
' Francisco Carlos Piragibe de Almeida |
| 11 |
' piragibe@esquadro.com.br |
| 12 |
' History |
| 13 |
' Apr, 17 1999 - fixed the null byte problem |
| 14 |
' Contains public domain RSA C-code for MD5 digest (see MD5-original.txt file) |
| 15 |
' The aamd532.dll DLL MUST be somewhere in your search path |
| 16 |
' for this to work |
| 17 |
Private Declare Sub MDFile Lib "aamd532.dll" (ByVal f As String, ByVal r As String) |
| 18 |
Private Declare Sub MDStringFix Lib "aamd532.dll" (ByVal f As String, ByVal t As Long, ByVal r As String) |
| 19 |
|
| 20 |
Public Function MD5String(p As String) As String |
| 21 |
' compute MD5 digest on a given string, returning the result |
| 22 |
Dim r As String * 32, t As Long |
| 23 |
r = Space(32) |
| 24 |
t = Len(p) |
| 25 |
MDStringFix p, t, r |
| 26 |
MD5String = r |
| 27 |
End Function |
| 28 |
|
| 29 |
Public Function MD5File(f As String) As String |
| 30 |
' compute MD5 digest on o given file, returning the result |
| 31 |
Dim r As String * 32 |
| 32 |
r = Space(32) |
| 33 |
MDFile f, r |
| 34 |
MD5File = r |
| 35 |
End Function |
| 36 |
|