本来想采用xmlhttp的、不过这个呢好像设置来源有点问题、所以就换了我比较不熟悉的inet组件(很久不用VB、其实VB也不太熟悉啦、哈哈)、废话不多说、直接贴代码:(有点乱、见谅吧) Option Explicit Private State(4) As Long Private ByteCounter As Long Private ByteBuffer(63) As Byte Private Type TGUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Private Declare Function OleLoadPicturePath _ Lib "oleaut32.dll" (ByVal szURLorPath As Long, _ ByVal punkCaller As Long, _ ByVal dwReserved As Long, _ ByVal clrReserved As OLE_COLOR, _ ByRef riid As TGUID, _ ByRef ppvRet As IPicture) As Long Private Declare Function MultiByteToWideChar _ Lib "KERNEL32" (ByVal CodePage As Long, _ ByVal dwFlags As Long, _ ByVal lpMultiByteStr As Long, _ ByVal cchMultiByte As Long, _ ByVal lpWideCharStr As Long, _ ByVal cchWideChar As Long) As Long Function QQcode(ByVal P As String, ByVal C As String) As String Dim i As Long, j As Long, k As Long, t As String Dim d(15) As Byte MD5Init MD5Update Len(P), StrToArray(P) MD5Final For k = 0 To 1 For j = 1 To 4 t = Right("00000000" & Hex(State(j)), 8) For i = 0 To 3 d(4 * (j - 1) + i) = CByte("&H" & Mid(t, 8 - i * 2 - 1, 2)) Next i Next j MD5Init MD5Update 16, d MD5Final Next k t = GetValues t = t & UCase(C) QQcode = MD5(t) End Function Public Function MD5(lStr As String) As String MD5Init MD5Update Len(lStr), StrToArray(lStr) MD5Final MD5 = GetValues End Function Private Function StrToArray(InString As String) As Byte() Dim i As Integer Dim bytBuffer() As Byte ReDim bytBuffer(Len(InString)) For i = 0 To Len(InString) - 1 bytBuffer(i) = Asc(Mid(InString, i + 1, 1)) Next i StrToArray = bytBuffer End Function Private Function GetValues() As String GetValues = L2S(State(1)) & L2S(State(2)) & L2S(State(3)) & L2S(State(4)) End Function Private Function L2S(Num As Long) As String Dim a As Byte Dim b As Byte Dim C As Byte Dim d As Byte a = Num And &HFF& If a < 16 Then L2S = "0" & Hex(a) Else L2S = Hex(a) End If b = (Num And &HFF00&) / 256 If b < 16 Then L2S = L2S & "0" & Hex(b) Else L2S = L2S & Hex(b) End If C = (Num And &HFF0000) / 65536 If C < 16 Then L2S = L2S & "0" & Hex(C) Else L2S = L2S & Hex(C) End