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

C++ Discussion :

[Débutant][C++] Valeur renvoyée par un void


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 61
    Par défaut [Débutant][C++] Valeur renvoyée par un void
    Bonjour à toutes et à tous,

    j'ai un petit problème avec deux fonctions.

    J'ai une première fonction qui est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void make_MD5( unsigned char * pData, int len, unsigned char * pDigest)
    {
       [..]
    }
    Cette fonction retourne un hash md5.

    Lorsque je l'apelle dans ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void HashDoubleMD5( unsigned char * pData, int len, unsigned char * pDigest)
    {
     
    	make_MD5( pData, len, pDigest);
    }
    Tout va bien mais j'aimerais, plutôt que de me contenter d'un hashage md5 simple faire un double md5.
    Autrement dit (en PHP) ce serait :
    md5(md5(pData));
    Le problème c'est que je ne sais pas comment récupérer la première valeur du md5 tout en gardant les valeurs de pData et de len dans ma fonction HashDoiubleMD5.

    A l'avance, merci pour votre aide

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    C'est pourtant facile (bien que je ne voie pas l'utilité d'un double MD5)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #define TAILLE_MD5 (la taille d'un MD5 ici. Je crois que c'est 16, non ?)
     
    void HashDoubleMD5(
     unsigned char * pData,  //[in] Données à hacher. Devrait être const.
     int len,                //[in] Taille des données
     unsigned char * pDigest //[out] Doit avoir une taille minimum de TAILLE_MD5
     )
    {	
    	unsigned char firstDigest[TAILLE_MD5];
    	make_MD5( pData, len, firstDigest);
    	make_MD5( firstDigest, TAILLE_MD5, pDigest);
    }
    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
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 965
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 965
    Par défaut
    Hui,

    Comme Médinoc, je ne vois pas l'intérêt de la manoeuvre.

    Pourquoi le md5 d'un md5 ?

    Pourquoi pas, tant qu'on y est, le md5 d'un md5 d'un md5 d'un md5 d'un md5 ?
    (je n'en mets pas plus, pour éviter de fatiguer mon clavier )

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 61
    Par défaut
    Merci pour votre aide (toujours autant précieuse pour être franc).
    Malheureusement ça ne marche pas (enfin si) mais le md5 donné n'est pas bon :s
    On m'a parlé d'un hexedit mais après je suis dans le flou total.
    Est-ce que vous avez une idée ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 61
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    C'est pourtant facile (bien que je ne voie pas l'utilité d'un double MD5)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #define TAILLE_MD5 (la taille d'un MD5 ici. Je crois que c'est 16, non ?)
     
    void HashDoubleMD5(
     unsigned char * pData,  //[in] Données à hacher. Devrait être const.
     int len,                //[in] Taille des données
     unsigned char * pDigest //[out] Doit avoir une taille minimum de TAILLE_MD5
     )
    {	
    	unsigned char firstDigest[TAILLE_MD5];
    	make_MD5( pData, len, firstDigest);
    	make_MD5( firstDigest, TAILLE_MD5, pDigest);
    }
    D'après ce que j'ai compris en faisant moultes recherches c'est qu'il fallait, avant de créer le nouveau MD5, prendre pour valeur le code ASCII (héxadécimal) du md5 généré précedemment.

    Donc en fait :
    unsigned char firstDigest[TAILLE_MD5];
    make_MD5( pData, len, firstDigest);
    // ^^ génère le premier hash

    [...]
    // renvoie le code hexa

    make_MD5( hexOfThefirstDigest, 2 *TAILLE_MD5, pDigest);
    Mais ce qui me pose problème c'est le [...]
    D'après ce que j'ai vu ici : http://www.developpez.net/forums/sho...71&postcount=7 il fait découper la chaine en morceaux de 2 mais je comprends pas trop :s

Discussions similaires

  1. [Débutant] Valeur renvoyée par un html-select
    Par geos25 dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/11/2007, 14h34
  2. [Windev 9] Valeur renvoyée par une fenêtre
    Par Romanops dans le forum WinDev
    Réponses: 10
    Dernier message: 04/01/2007, 17h54
  3. Valeur renvoyée par interrupteur (check box)
    Par nath-0-0 dans le forum WinDev
    Réponses: 8
    Dernier message: 29/11/2006, 16h33
  4. Réponses: 1
    Dernier message: 31/07/2006, 13h54
  5. [SQL] php et recuperation d'une valeur renvoyée par une fonction sql
    Par highman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/06/2006, 15h42

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