Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TINYHASH - MD5, MD4 ET SHA1


Information sur la source

Catégorie :API Classé sous : md5, md4, sha, hash, advapi Niveau : Débutant Date de création : 07/02/2007 Date de mise à jour : 09/02/2007 19:58:34 Vu / téléchargé: 5 846 / 606

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
TinyHash est une unité qui permet d'accéder aux fonctions de hash contenues dans la librairie AdvApi32.dll de Windows.

Elle contient non seulement les fonctions de base :
A_SHAInit, A_SHAUpdate, A_SHAFinal, MD4Init, MD4Update, MD4Final, MD5Init, MD5Update et MD5Final

et également des fonctions qui facilite leurs utilisations (buffer non typé, string, stream), permettant
la conversion des hash vers chaînes de caractères et également de comparaison.

contrairement a l'API MD5 que j'ai deja postée, TinyHash utilise uniquement la librairie de microsoft.
il n'est donc pas question ici de montrer comment sont développer ces algorithmes, mais plutôt de fournir
une prise en charge rapide de ces algorithme dans vos applications, vous n'aurez donc plus d'excuses pour
laisser les mots de passes en clair ou de ne pas chercher a augmenter la sécurité dans ces dernières.


Les declarations dans TinyHash sont tirée du travail de Alexandre Julliard @ http://source.winehq.org (liens vers les sources C dans l'entete de l'unité
tinyhash)
Merci egalement a Florenth pour sont unité ExProgressBar :)


 

Conclusion

Chaque hash, malgrés leurs differences, sont declarés de façon a ce que leurs utilisation soit la meme. chacun a la base possede 3 fonctions (Init, Update et Final) qui doivent etre ecritent dans le meme ordre, une petite difference reste sur SHA1 qui utilise des pointeurs contrairement a MD4 et MD5.
Des fonctions "rapide" sont present pour faciliter l'utilisation de ces routines.

Tout est mis en exemple dans l'entete de l'unité.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

08 février 2007 19:10:12 :
Revision 1.0.1 - 08/02/2007 - ajout d'exemples, ajout commentaires et declarations d'origine,declinaison des types SHA, MD4 et MD5 en convention Delphi, fixé le type pMD5_CTX qui pointait sur MD4_CTX.
09 février 2007 19:58:34 :
Revision 1.0.2 - 09/02/2007 - ajout des fonctions de comparaisons - ajout d'une procedure CallBack pour les hash sur les streams - Ajout d'une demo d'utilisation de TinyHash

Commentaires et avis

signaler à un administrateur
Commentaire de lucien le 08/02/2007 09:53:44

Bonjour Foxi,
j'apprécie toujours ton travail, et j'y apprends beaucoup :) c'est vrai, sans vaine flatterie !...
Mais aujourd'hui, j'aurais aimé qu'il y ait un minimum d'explications pour qu'un vieil autodidacte comme moi (et sûrement d'autres...) puisse aller plus loin !!
Merci
Lucien
PS ma requête vient peut-être de n'avoir pas encore lu l'unité, ce que je fais tout de suite...:))

signaler à un administrateur
Commentaire de WhiteHippo le 08/02/2007 12:51:09

Hello foxi

une petite erreur s'est glissée dans ton source :
pMD5_CTX = ^MD5_CTX;
et non
pMD5_CTX = ^MD4_CTX;

Cordialement.

signaler à un administrateur
Commentaire de WhiteHippo le 08/02/2007 13:08:00

Je me posais une question :

Vu que c'est une interface pour une pure API windows, ne serait-il pas judicieux d'utiliser les types définis par Microsoft ( ceux de l'unité Windows évidemment :) ?

ULONG, UCHAR, UINT, PUCHAR, etc...

P.S. Je sais ça ne change rien pour le code, c'est juste histoire d'avoir les définitions le plus proche possible de celles données dans la MSDN. Pensons aux débutants !

Cordialement.

signaler à un administrateur
Commentaire de f0xi le 08/02/2007 17:01:36 administrateur CS

@Lucien, desolé j'etais un peu préssé d'aller me coucher donc, j'ai poster un peu en version "beta".
je vais de ce pas ajouter quelques trucs pour faciliter la comprehension.

@WhitteHippo, houla bien vus! en meme temps les pointeurs pour MD5 et MD4 ne sont pas utilisés ici, il sont juste la pour la convention.
Sinon oui, c'est une interface pour une API windows, mais ce n'est pas une interface 1:1 (autant dire que j'aurais pas de certif Jedi la dessus :)
mais je prend note de tes remarques et voir ce que je vais faire avec ça :)

signaler à un administrateur
Commentaire de lucien le 08/02/2007 18:22:51

@Foxi Merci,
Lucien

signaler à un administrateur
Commentaire de f0xi le 08/02/2007 19:19:29 administrateur CS

voila la v1.0.1, y'a encore quelques retouches a faire sur certaines routines (rien de bien mechant, mais qui ne sont pas trés propre je trouve).

@lucien : j'espere que l'ajout des 12Ko de commentaires te seront utiles. :)

signaler à un administrateur
Commentaire de f0xi le 08/02/2007 19:27:42 administrateur CS

@WhiteHippo : aprés reflexion, je ne vais pas mettre les types d'origines, car ça colerait plus avec les sources C originale, certaines sont avec les Types windows, d'autres avec les types C.
genre pour SHA on as bien ULONG, UINT, UCHAR, mais sur MD4 et MD5 on a Unsigned Char, Unsigned Long ... bref ... ils ont pas chercher midi a quatorze heure pour les "normaliser".
Au moins en restant en type Delphi, ç'est homogene et ça permet aussi de voir comment on retranscrit du C en Delphi, ce qui peu etre bien plus interressant pour les debutants a mon avis, question de point de vue.


signaler à un administrateur
Commentaire de lucien le 09/02/2007 10:01:04

@Foxi,
merci pour les 12 ko :))

j'étudie aujourd'hui !
Lucien

signaler à un administrateur
Commentaire de cirec le 09/02/2007 12:31:02 administrateur CS

Salut,

en même temps ULong veut dire Usigned Long
et UChar ---> Unsigned Char   ... non ?

et tu dis "ç'est homogene et ça permet aussi de voir comment on retranscrit du C en Delphi"

tu pourrais, dans ce cas, donner le lien vers l'original en C ... pour le débutant que je suis!

signaler à un administrateur
Commentaire de f0xi le 09/02/2007 19:00:44 administrateur CS

vous etes jamais content vous alors :)

je prepare une maj avec tout dedans. resteras plus qu'a faire un HLP.

signaler à un administrateur
Commentaire de cirec le 09/02/2007 19:52:45 administrateur CS

ah ah ah ...
c'est bien connu ... tu leurs donnes le petit doigt ils veulent tout le bras :)

signaler à un administrateur
Commentaire de f0xi le 09/02/2007 20:50:20 administrateur CS

en plus j'aime bien le "pour le débutant que je suis" ... genre t'es un noob en delphi toi ... tu te fouterais pas un peu de l'hopital ? ... mmm ... non c'est pas ça ... tu serait pas la charitée qui vole un oeuf de boeuf ? ... mmm pas ça non plus ...

enfin bref ...

maj effectuée.

signaler à un administrateur
Commentaire de cantador le 11/02/2007 12:57:35

la maturité de cirec + la fougue jeunesse inventive de foxi =

un cocktail détonnant pour le plus grand bien de DelphiFr !

cantador

signaler à un administrateur
Commentaire de fbaudoux_ir le 12/02/2007 09:46:36

c'est quoi un hash ?

signaler à un administrateur
Commentaire de Francky23012301 le 16/02/2007 10:24:00

Le hash c'est quoi ? mdrrrr ^^.

Bonne source f0xi.

signaler à un administrateur
Commentaire de cantador le 17/02/2007 16:21:57

Pour moi le hash, c'est un cryptage mais irréversible à la différence d'un cryptage simple..
autrement lors de la création du hash, il y a perte d'information ce qui empêche de retrouver l'origine.

mais évidemment ce qui est génial est que :
chaine(i)= hash(i)
et si hash(2) = hash(3) alors nécessairement chaine(2)= chaine(3)

et si on oublie son mot de passe, il faut que l'admin détruise le hash et en recrée un autre par défaut (ex : password)et l'utilisateur n'a plus qu'à re-changer son mot de passe.

cela sécurise magistralement les points d'entrée d'une application (enfin du moins pour l'instant et nous avons de la marge..)

bravo à foxi pour ce programme bien construit, utile et très performant grace à l'ajout de sous-programmes en assempbleur.

cantador

signaler à un administrateur
Commentaire de Francky23012301 le 20/02/2007 12:20:28

Cantador,

Je rigolais suite à une autre signification du mot hash : mdrrrr

signaler à un administrateur
Commentaire de cantador le 21/02/2007 14:42:27

Ah? non ?
c'est pas possible..merci de la précision..
je me sens nettement mieux.
LOL !!

ma réponse d'adressait à fbaudoux_ir mais c'était aussi un peu afin de tenter d'amorcer une discussion sur le sujet.

ne t'en fait pas tu trouveras bien une autre occasion de nous faire partager à nouveau de ton humour ravageur !

Cantador

signaler à un administrateur
Commentaire de f0xi le 22/02/2007 11:22:59 administrateur CS

@ cantador, si ça t'interresse regarde ma permiere source MD5, LE CELEBRE .... gnagnagna.
y'a pas mal d'explication sur ce qu'est un Hash.

signaler à un administrateur
Commentaire de cantador le 22/02/2007 21:15:39

merci foxi
je regarde avec attention tous tes sources mais ça fait bcp à digérer..

@+

signaler à un administrateur
Commentaire de jackalunion le 24/06/2008 13:28:12 10/10

j'ai Compris

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Cryptage MD2 MD4 MD5 [ par MAsterC ] Bonjour à tous! J'ai Delphi 7 et Borland C++ Builder 6 puis dans le logiciel C++ de Borland dans l'onglet "Indy - Divers" il y a Les composant de Cryptage MD5 [ par Kruger ] Bonjour tous le monde, je suis en train de develloper une petite application sous delphi 6 entreprise dont une partie est "protégée" par un mots de p


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,515 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.