28,406
社区成员
发帖
与我相关
我的任务
分享
Public Function HexToArray(ByVal data)
Dim ret, i
ReDim ret(Len(data) / 2 - 1)
For i = 1 To Len(Data) Step 2
ret((i - 1) / 2) = CByte("&H" & Mid(data, i, 2))
Next
HexToArray = ret
End Function
Public Function HMACMD5(ByVal data, ByVal key)
Dim PI(63), PO(63)
Dim QO(79), QI
Dim i
Dim out
ReDim QI(64 + Len(data) - 1)
If Len(key) > 64 Then
key = MD5(key)
End If
For i = 0 To 63
QI(i) = &H36
QO(i) = &H5C
PI(i) = &H36
PO(i) = &H5C
Next
For i = 0 To Len(key) - 1
PI(i) = PI(i) Xor Asc(Mid(key, i + 1, 1))
PO(i) = PO(i) Xor Asc(Mid(key, i + 1, 1))
QI(i) = PI(i) And &HFF
QO(i) = PO(i) And &HFF
Next
For i = 0 To Len(data) - 1
QI(64 + i) = Asc(Mid(data, i + 1, 1)) And &HFF
Next
out = HexToArray(MD52(QI))
For i = 0 To 15
QO(64 + i) = out(i)
Next
HMACMD5 = MD52(QO)
End Function