Funkcja skrótu MD5 napisana w VBA

przez | 2024-08-02

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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.