Le MD5 c'est un algorithme d'encryption qui ne fonctionne que dans un sens, ca veut dire qu'un string donne toujours le meme resultat en MD5, mais qu'il n'est pas possible de retrouver le string a partir du MD5 (enfin pas facilement).
L'idée avec le MD5 (ou SHA-1, etc...) c'est de ne stocker que le MD5, comme ca si quelqu'un a access a la DB il ne connaitra pas directement les mots de passe.
Pour generer un hash MD5 a partir d'un string tu peux faire comme ca:
Code :
SELECT HASHBYTES('MD5',N'abcd')
|
Il est aussi recommandé de ne pas stocker que le hash MD5 du mot de passe mais d'y ajouter un string au hasard (salt) et le login. Comme ca si deux utilisateurs different on le meme mot de passe, le hash MD5 ne sera pas le meme (et ca evite les tentatives d'access par substitution).
Le hash devient alors
Code :
SELECT HASHBYTES('MD5',N'Jean69' + N'MonMotDePasse' + N'x@M"mfgy0qPBNEvB7J!w')
|
En SQL 2005 il est aussi possible d'encrypter une colonne (avec un mot de passe ou un certificat), ca peut servire a proteger les infos d'un access non authorisé, avec un certificat ca permet l'utilisation de clé publique et privée pour securiser la connection, mais les infos dans la DB ne seront jamais vraiment protégée d'un administrateur.
Message édité par Oliiii le 16-09-2010 à 08:30:35