IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

hache MD5 d'un mot.[déplacer dans algo merci]


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 66
    Points
    66
    Par défaut hache MD5 d'un mot.[déplacer dans algo merci]
    Mesdames, Mr, et autres ...

    J'ai entandu dire qu'il existait des librairies pour coder une chaines de caractères en MD5.
    Ne me dites pas de faire ca en un autre langage ca m'interesse pas.

    Si la réponse est oui:
    Merci de me rediriger vers un tuto de fonctionnement de cette librérie, car je ne sais pas lire un fichier *.h pour comprendre le fonctionnement de celle ci.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Déjà, qu'appelles-tu "coder" ?
    Car le MD5, ça n'encode rien du tout, et ça ne crypte pas non plus.
    MD5, ça hache, avec toutes les implications que cela comporte : Existence de collisions (la grande difficulté est de les trouver)), non-réversibilité (impossible de retrouver la chaîne d'origine à partir du hash).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Points : 66
    Points
    66
    Par défaut
    Hum certe j'ai quelque souci de vocabulaire, je suis d'accord, bon reprenon, je veux coder un programme en C qui va me donne le md5 d'un mot !
    Tes autres conditions énoncée je les connait aussi.

    Mais mon problème se passe en plusieurs niveaux:

    1) principe de hachage de la chaine.
    2) Si il existe des "outils"/librébie en C pour coder ca plus facilement.

    Merci de ta réponse

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Sous Windows, la CryptoAPI permet de faire ça.

    Pour des bibliothèques, tu peux chercher dans les liens fournis sur Wikipédia:
    http://en.wikipedia.org/wiki/MD5#External_links
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'avais fait un petit soft pour faire des md5 (je me suis basé sur une source sur le net) en série (a travers des fichiers .txt/dictionnaire).
    La bibliothèque utilisée est OpenSSL.
    Je te donne la fonction, qui peut être réutilisée telle quelle normalement :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    /********************************************/
    /* basé sur :                               */
    /* http://www.target0.be/code/md5.c         */
    /********************************************/
     
     
     
     
    #include <stdio.h>
    #include <string.h>
    #include <openssl/evp.h>	/* bibliothèque OpenSSL */
     
    void md5(char *chaine)
    {
     
     
        EVP_MD_CTX mdctx;
        const EVP_MD *md;
        unsigned char md_value[EVP_MAX_MD_SIZE];
        int md_len,i;
        char *buf = (char *)malloc(EVP_MAX_MD_SIZE*sizeof(char));
        memset(buf,0,EVP_MAX_MD_SIZE);
     
        OpenSSL_add_all_digests();
     
        md = EVP_get_digestbyname("md5");
     
        if (!md)
        {
            fprintf(stderr,"Cannot find md5 digest\n");
            free(buf);
            exit(0);
        }
     
        EVP_MD_CTX_init(&mdctx);
        EVP_DigestInit_ex(&mdctx,md,NULL);
        EVP_DigestUpdate(&mdctx,chaine,strlen(chaine));
        EVP_DigestFinal_ex(&mdctx,md_value,(unsigned int*)&md_len);
        EVP_MD_CTX_cleanup(&mdctx);
     
        for (i=0;i<md_len;i++)
            sprintf(buf+i+i,"%02x",md_value[i]);
     
        fprintf(stdout, "%s : %s\n", chaine, buf);
        free(buf);
    }

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2007, 18h51
  2. [SRC] hach MD5
    Par tsamadoo dans le forum C++Builder
    Réponses: 1
    Dernier message: 08/05/2005, 20h45
  3. [FLASH MX] Mot cliquable dans un texte
    Par Greutzeb dans le forum Flash
    Réponses: 2
    Dernier message: 05/05/2005, 13h20
  4. [C#] Modifier et se déplacer dans un DataGrid
    Par fabrice1596 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/09/2004, 22h10
  5. [Fichiers] Enregistrer/Déplacer dans un répertoire
    Par babyboy dans le forum Entrée/Sortie
    Réponses: 19
    Dernier message: 12/05/2004, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo