Bonjour,
L'idée du Hash MD5 est la suivante : plutôt que de transmettre le mot de passe en clair...
1. on calcule
l'empreinte numérique du mot de passe sur 128 bits (coté client)
2. On transmets l'empreinte numérique au serveur
3. Le serveur vérifie que le Hash MD5 est conforme à celui qui est dans une base de données (par exemple)
4. Si l'égalité est vérifiée, l'identification est validée.
Les avantages du MD5 sont les suivantes :
- Simplicité de mise en œuvre
- A aucun moment le mot de passe d'origine n'est transmis ni stocké
- Il est statistiquement improbable (comprenez "impossible") de trouver deux fois le même Hash MD5 avec deux mots de passe différents. D'où une très grande difficulté de pirater le mot de passe par essais aléatoires.
Plus concrètement, voilà une fonction VB.NET qui calcule le Hash MD5 à partir d'une chaîne de caractères (votre mot de passe, par exemple) :
1 2 3 4 5 6 7 8 9 10 11 12
| Private Function GenerateHash(ByVal SourceText As String) As String
'Instantiate an MD5 Provider object
Dim Md5 As New MD5CryptoServiceProvider()
Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(SourceText)
bytesToHash = Md5.ComputeHash(bytesToHash)
Dim strResult As String = ""
For Each b As Byte In bytesToHash
strResult += b.ToString("x2")
Next b
Return strResult
End Function |
Partager