begin process at 2008 07 25 21:44:36
1 216 525 membres
476 nouveaux aujourd'hui
14 182 membres club

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é: 4 714 / 511

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

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é.
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

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
  • 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

Cryptage MD2 MD4 MD5 par MAsterC

Cryptage MD5 par Kruger

Pub



Appels d'offres

Serveur et client mess...
Budget : 2 000€
Animation Flash alimen...
Budget : 6 000€
Intranet client pour t...
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS