mirror of
https://e.coding.net/circlecloud/VBFunctionBas.git
synced 2024-10-31 22:38:50 +00:00
7f1cfb17fd
Signed-off-by: 502647092 <jtb1@163.com>
66 lines
1.8 KiB
QBasic
66 lines
1.8 KiB
QBasic
Attribute VB_Name = "MD5Bas"
|
|
Option Explicit
|
|
Option Base 0
|
|
Public Type MD5_CTX
|
|
i(1) As Long
|
|
buf(3) As Long
|
|
inc(63) As Byte
|
|
digest(15) As Byte
|
|
End Type
|
|
|
|
Public Declare Sub MD5Init Lib "Cryptdll.dll" (ByVal pContex As Long)
|
|
Public Declare Sub MD5Final Lib "Cryptdll.dll" (ByVal pContex As Long)
|
|
Public Declare Sub MD5Update Lib "Cryptdll.dll" (ByVal pContex As Long, ByVal lPtr As Long, ByVal nSize As Long)
|
|
|
|
Public Function ConvBytesToBinaryString(bytesIn() As Byte) As String
|
|
Dim i As Long
|
|
Dim nSize As Long
|
|
Dim strRet As String
|
|
|
|
nSize = UBound(bytesIn)
|
|
For i = 0 To nSize
|
|
strRet = strRet & Right$("0" & Hex(bytesIn(i)), 2)
|
|
Next
|
|
ConvBytesToBinaryString = strRet
|
|
End Function
|
|
|
|
Public Function GetMD5Hash(bytesIn() As Byte) As Byte()
|
|
Dim ctx As MD5_CTX
|
|
Dim nSize As Long
|
|
|
|
nSize = UBound(bytesIn) + 1
|
|
|
|
MD5Init VarPtr(ctx)
|
|
MD5Update ByVal VarPtr(ctx), ByVal VarPtr(bytesIn(0)), nSize
|
|
MD5Final VarPtr(ctx)
|
|
|
|
GetMD5Hash = ctx.digest
|
|
End Function
|
|
|
|
Public Function GetMD5Hash_Bytes(bytesIn() As Byte) As String
|
|
GetMD5Hash_Bytes = ConvBytesToBinaryString(GetMD5Hash(bytesIn))
|
|
End Function
|
|
|
|
Public Function GetMD5Hash_String(ByVal strIn As String) As String
|
|
GetMD5Hash_String = GetMD5Hash_Bytes(StrConv(strIn, vbFromUnicode))
|
|
End Function
|
|
|
|
Public Function GetMD5Hash_File(ByVal strFile As String) As String
|
|
Dim lFile As Long
|
|
Dim Bytes() As Byte
|
|
Dim lSize As Long
|
|
If Dir(strFile) = "" Then
|
|
GetMD5Hash_File = ""
|
|
Exit Function
|
|
End If
|
|
lSize = FileLen(strFile)
|
|
If (lSize) Then
|
|
lFile = FreeFile
|
|
ReDim Bytes(lSize - 1)
|
|
Open strFile For Binary As lFile
|
|
Get lFile, , Bytes
|
|
Close lFile
|
|
GetMD5Hash_File = GetMD5Hash_Bytes(Bytes)
|
|
End If
|
|
End Function
|