Attribute VB_Name = "Module1"
Public Function STR2MD5(ByVal s As String) As String
    Dim enc As Object
    Dim bytes() As Byte
    Dim pos As Long
    Dim outstr As String

    Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
    
    bytes = StrConv(s, vbFromUnicode)
    bytes = enc.ComputeHash_2(bytes)
    
    For pos = LBound(bytes) To UBound(bytes)
       outstr = outstr & LCase(Right("0" & Hex(bytes(pos)), 2))
    Next pos
    
    STR2MD5 = outstr
    Set enc = Nothing
End Function

Public Function STR2HEX(ByVal str_input As String) As String
    
    Dim bytes() As Byte
    Dim pos As Long
    Dim outstr As String

    bytes = StrConv(str_input, vbFromUnicode)
    
    For pos = LBound(bytes) To UBound(bytes)
    
       outstr = outstr & LCase(Right("0" & Hex(bytes(pos)), 2))
    Next pos
    
    STR2HEX = outstr
End Function

Public Function HEX2STR(ByVal str_input As String) As String
    
    Dim pos As Long
    Dim outstr As String
   
    For pos = 1 To Len(str_input) - 1 Step 2
        
        outstr = outstr & Chr(WorksheetFunction.Hex2Dec(Mid(str_input, pos, 2)))
    Next pos
    
    HEX2STR = outstr
End Function

