Md5 api, le celebre algorithme de hachage sous delphi.

Soyez le premier à donner votre avis sur cette source.

Vue 19 995 fois - Téléchargée 2 664 fois


Description

Salut,

cette fois on passe au choses serieuses.

je vous propose donc l'API MD5, qui permet donc d'avoir accés facilement a cet algorythme
de cryptage.

L'api se decoupe en Deux fichier :

MD5Api, qui est l'unité a declarer pour utiliser les fonctions.
MD5Core, qui contient l'agorythme (a ne pas modifier sinon ... ça marche plus).

Au depart j'avais recupéré une petite unité d'un auteur dont je n'arrive plus a me souvenir,
bref, aprés quelques fortes modifications et optimisations, j'ai ensuite ajouter plusieurs
choses utiles.

L'Api contient donc :

des fonctions qui genere des clef MD5 (string) a partir de chaines de caracteres, donnée non typée,
et fichiers.
d'autre fonctions permettent de faire des convertions, comparaisons ect...

voila, et que je ne vous vois plus mettre des identifiants d'accés en clair dans des fichiers INI,
registre et bases de données, la vous n'avez plus d'excuses.

Source / Exemple :


{ Renvois la representation du MD5 d'une chaine de caracteres }
function MD5(const S : string) : string; overload;
{ Renvois la representation du MD5 d'un buffer quelquonque }
function MD5(const Buffer; const Len: integer): string; overload;
{ REnvois la representation du MD5 d'un fichier }
function MD5FromFile(const FileName : string) : string;

{ Renvois une donnée MD5 d'une chaine de caracteres }
function MD5DataFromString(const S : string) : TMD5Data;
{ Renvois une donnée MD5 d'un buffer quelquonque }
function MD5DataFromBuffer(const Buffer; const Len: integer) : TMD5Data;
{ Renvois une donnée MD5 d'un fichier }
function MD5DataFromFile(const FileName: string): TMD5Data;

{ Convertis une donnée MD5 vers une chaine de caracteres }
function MD5DataToStr(const Data : TMD5Data) : string;
{ Convertis une chaine de caracteres representant un MD5 vers une donnée MD5 } 
function MD5StrToMD5Data(const S : String) : TMD5Data;

{ Verifie la validitée d'une chaine representant un MD5 }
function MD5StrCheck(const S : string) : boolean;
{ Compare deux données MD5 }
function MD5Equal(const A, B: TMD5Data) : Boolean;
{ Compare deux données MD5 grace a CompareMem }
function MD5MemEqual(const A, B : TMD5Data) : boolean;

{ Inverse le sens des données d'une donnée MD5 }
function MD5Reverse(const Data : TMD5Data) : TMD5Data;
{ Inverse l'ordre des octets Pair et Impair d'une donnée MD5 }
function MD5OddSwap(const Data : TMD5Data) : TMD5Data;

Conclusion :


Aucuns tests de performances n'a été effectué pour le moment, mais les routines sont assé
rapide.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
Salut f0xi,
dis moi si je me trompe, mais j'ai l'impression que le resultat de ton calcul de md5 sur des fichiers n'est pas correct. J'ai testé 3 fichiers, et le resultat est différent de celui obtenu avec Indy et avec un outil externe (winMd5Sum), les 2 derniers ayant quant à eux le même résultat.
As-tu verifié les resultats sur un fichier ? Ou est-ce à cause de la facon d'acceder au fichier qui donne un resultat différent ...

Je sais, cette source date pas d'hier, mais je suis étonné que le résultat ne soit pas correct !
Messages postés
1
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
11 avril 2008

Merci beaucoup pour vos deux réponses.
A+
Max
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
et pour l'utilisation c'est simple :
tu sauvegardes le hachMD5 et quand l'utilisateur entre son mot de passe tu refais un hach et tu le compares avec celui que tu as sauvegardé

voilà c'est pas plus compliqué que ça :)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
MD5 n'est pas un cryptage, c'est un hachage, on reviens pas en arrière.
Messages postés
1
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
10 avril 2008

Bonjour,
J'ai bien chargé le code du MD5. Le cryptage d'un mot de passe semble marcher, mais comment à partir du code MD5, reconvertir vers le string d'origine (Delphi) pour être utilisé ?
En vous remerciant pour votre réponse.
Max
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.