Le cryptage MD5 est une forme de hachage relativement ancienne mais toujours bien pratique. On peut l'utiliser pour comparer des bases d'emails avec celles d'un prestataire sans fournir les données brutes par exemple. En vue d'un partenariat, d'un échange...

Attention nous ne parlons pas ici de réelle sécurisation. Le MD5 SQL - même salé ou doublé - est sujet à caution. Il ne s'agit que de permettre la transmission de données avec une relative tranquilité quant à un usage non-souhaité de ses fichiers. Parfois le partenaire qui vous transmettra ses données cryptées vous fera également signer un engagement de non-divulgation ou de non-utilisation frauduleuse (non-disclosure). Et si c'est vous qui transmettez les données (j'avoue ne jamais le faire...), pensez-y !

Quoiqu'il en soit il est courant de demander cela à un prestataire fournisseur (l'inverse est moins acceptable). Certes PhpMyAdmin permet nativement de saisir du texte puis de l'encrypter en MD5 (Insérer/Fonction/MD5). Mais pour mettre en place un worflow ou comparer des bases en lot, il est nécessaire de maîtriser la chose en SQL.

Quelques requêtes SQL d'exemple :

Voir le cryptage MD5 d'une chaîne

SELECT MD5(Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.') ;

Ou d'un champ :

SELECT MD5(mon_champ) FROM ma_table ;

Convertir un champ en MD5

Avant cela créer un 2nd champ pour recevoir le texte crypté.

UPDATE MaTable SET MonChampMD5 = MD5(MonChampOrigine) ;

Le cryptage en MD5 est un protocole standardisé, chaque base de données SQL cryptera une même chaîne de la même façon.

Après réception d'emails externes cryptés en MD5 - et sachant que la probabilité que 2 chaînes différentes donnent la même empreinte est très faible - vous pouvez maintenant tester la présence de doublons entre vos emails et ceux de vos partenaires (INNER JOIN ou WHERE mes_emails_md5 = emails_externe_md5).

Attention : l'encodage en MD5 regarde la casse de vos chaînes ! Ainsi passez vos emails en minuscule, et assurez-vous que votre fichier de comparaison a lui aussi été encodé en minuscule.

Autre avantage

Si vous possédez les bases d'emails cryptées de différents fournisseurs, une autre carte peut être jouée. En comparant les bases des fournisseurs entre elles, et non pas seulement avec les vôtres, vous allez pouvoir identifier des emails récurrents dans les bases diffusées.

Et éventuellement faire le choix de les évincer de vos commandes en partant du principe suivant : une adresse email possédée par plusieurs prestataires est une adresse potentiellement davantage spammée, et donc potentiellement moins intéressante que les autres.

Ainsi je conserve toujours les bases d'emails cryptés que je reçois, et autant vous dire que je ne me prive pas de cette dernière vérification !