Public Function Hmac_MD5(ByVal in_password As String, ByVal in_key As String) As String
Dim bytpassword() As Byte
bytpassword = UnicodeToUtf8(in_password)
Dim in_password_len As Long
in_password_len = UBound(bytpassword) - LBound(bytpassword) + 1
Dim bytkey() As Byte
bytkey = UnicodeToUtf8(in_key)
Dim in_key_len As Long
in_key_len = UBound(bytkey) - LBound(bytkey) + 1
If in_key_len > 64 Then
MD5Init
MD5Update in_key_len, bytkey
MD5Final
ReDim bytkey(0 To 15)
bytkey = Hash2Byte(GetValues)
in_key_len = 16
End If
Dim ipad(0 To 63) As Byte
Dim i As Integer
For i = LBound(ipad) To UBound(ipad)
If i > UBound(bytkey) Then
ipad(i) = &H36
Else
ipad(i) = bytkey(i) Xor &H36
End If
Next
MD5Init
MD5Update 64, ipad
MD5Updat
【开源项目】花密(Flower Password)VB版之HMAC-MD5算法
该博客介绍了一个VB版本的HMAC-MD5算法实现,通过UnicodeToUtf8转换字符串为字节,然后进行密钥和密码的预处理,结合MD5更新和最终化过程,生成HMAC-MD5散列值。
摘要由CSDN通过智能技术生成