1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Imports System
Imports System.Security.Cryptography
Imports System.Text
Module HachageMd5
''' <summary>
''' Fonction de hachage d'une chaîne de caractère en MD5 en une chaîne de 32 caractères hexadécimaux.
''' </summary>
''' <param name="input">Chaîne de caractères à hacher.</param>
''' <returns>Chaîne de 32 caractères hexadécimaux.</returns>
''' <remarks></remarks>
Function hachageEnMD5(ByVal input As String) As String
' Création d'un nouvelle instance MD5
Dim md5Hasher As MD5 = MD5.Create()
' Conversion de l'argument en un tableau de bit puis hachage.
Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))
' Création d'une instance de Stringbuilder
' pour collecter les bits et créer la chaîne.
Dim sBuilder As New StringBuilder()
' Formattage de chaque bit du tableau haché en caractère hexadécimal.
Dim i As Integer
For i = 0 To data.Length - 1
sBuilder.Append(data(i).ToString("x2"))
Next i
' Renvoi de la chaîne hexadécimale.
Return sBuilder.ToString()
End Function
''' <summary>
''' Comparaison d'une chaîne de caractères à une référence de hachage.
''' </summary>
''' <param name="input">Fonction dont le hachage en MD5 doit être comparé.</param>
''' <param name="hash">Référence à comparer (Chaîne hachée).</param>
''' <returns>Booléen : Vrai si les hachages des chaînes sont identiques, Faux sinon</returns>
''' <remarks>La première chaîne est une chaine de caractère normale qui sera hachée en MD5 pour la comparaison. La seconde est une chaîne déjà hachée.</remarks>
Function verifyValeurHachage(ByVal input As String, ByVal hash As String) As Boolean
' Hachage du première paramêtre.
Dim hashOfInput As String = hachageEnMD5(input)
' Création d'une instance StringComparer et comparaison des hachages.
Dim comparer As StringComparer = StringComparer.OrdinalIgnoreCase
'202cb962ac59075b964b07152d234b70
'd9b1d7db4cd6e70935368a1efb10e377
If 0 = comparer.Compare(hashOfInput, hash) Then
Return True
Else
Return False
End If
End Function
End Module |
Partager