Bonjour
Je viens de "tomber" sur un truc curieux qui peut intéresser du monde.
Ayant besoin d'obtenir le MD5 d'une chaîne, j'ai utilisé la fonction de la librairie ICS du très connu François Piette.
La chaîne résultante devait être comparée avec le résultat de la fonction MD5 de PHP et la comparaison s'est bizarrement avérée négative.
Voulant comprendre, j'ai aussi utilisé la fonction de Delphi dans l'unité MessageDigest_5.pas.
Résultat: bien que normalement compatible avec XE2 et +, la fonction de François Piette ne sait pas gérer les chaînes accentuées.
Code exemple:
Donc, méfiez-vous si vous utilisez cette fonction qui pourrait bien vous induire en erreur dans vos développements (ceci dit uniquement à titre d'information et sans aucune critique envers l'auteur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 const Srce1: string = 'La chaîne à convertir'; Srce2: string = 'La chaine a convertir'; var Md5: MessageDigest_5.IMD5; V1, V2: string; begin V1 := OverbyteIcsMD5.StrMD5(Srce1); Md5 := GetMD5; Md5.Update(Srce1); V2 := Md5.AsString(); Md5 := nil; ShowMessage(V1 + #13#10 + V2); V1 := OverbyteIcsMD5.StrMD5(Srce2); Md5 := GetMD5; Md5.Update(Srce2); V2 := Md5.AsString(); Md5 := nil; ShowMessage(V1 + #13#10 + V2);
Ceci dit, essayer les 2 chaînes exemple sur les sites suivants:
http://www.md5.cz/
http://md5-hash-online.waraxe.us/
Les résultats seront également différents.
Papy !
Partager