|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
网上找的VB代码- 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
-
- 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
复制代码 |
|