Potrzebujesz wygenerować funkcję skrótu MD5 dla danego ciągu znaków? Oto prosta funkcja jakiej używam w swoich projektach.
Public Function CalculateMD5Hash(ByVal inputString As String) As String
Dim MD5 As Object
Dim byteArray() As Byte
Dim result As String
Dim i As Integer
On Error GoTo Err
Set MD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
byteArray = StrConv(inputString, vbFromUnicode)
byteArray = MD5.ComputeHash_2((byteArray))
For i = LBound(byteArray) To UBound(byteArray)
result = result & Right("0" & Hex(byteArray(i)), 2)
Next i
Err2:
Set MD5 = Nothing
CalculateMD5Hash = result
Exit Function
Err:
result = ""
Resume Err2
End Function
Uwaga: do działania tego kodu wymagana jest zainstalowana biblioteka .NET Framework przynajmniej w wersji 1.1. Raczej na każdym współczesnym komputerze jest ona zainstalowana (no chyba, że gdzieś masz postawiony jakiś czysty system Windows XP). W przypadku braku zainstalowanej tej biblioteki funkcja zwróci pusty ciąg znaków.
Uwaga: funkcja skrótu MD5 jest prosta w implementacji, ale nie zaleca się jej używania w systemach krytycznych przechowujących dane wrażliwe. Świetnie się nadaje np. do przechowywania sum kontrolnych plików, ale jeśli chcesz przechowywać zakodowane hasła to skłaniałbym się ku jakiejś bezpieczniejszej funkcji skrótu np. SHA-256, SHA-3, bcrypt, Argon2