#2
约定的童话2023-08-18 17:21
添加窗体按钮,加入下面代码试下(转载https://zhidao.baidu.com/question/1819476321040272948.html):
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 |
如标题,VB 如何计算文件的MD5校验, 目前正在找用控件的方法,但还未有实现,有大侠可以指点一二的么,谢谢!