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

Langage C++ Discussion :

Calculer des hash md5 ou base64 de chaines de texte


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut Calculer des hash md5 ou base64 de chaines de texte
    Bonsoir,

    J'ai été étonné de ne rien trouver à propos du hash md5 (ou sha) sur ce forum, tant les moyens que j'ai trouvé sur la toile pour en calculer m'ont semblé alambiqués.

    Je souhaiterais, dans le cadre de l'implémentation maison des méthodes d'authentification HTTP, calculer des hash md5 ou des encodages en base64 de simples chaines de caractères.
    Mon approche haut-niveau m'a laissé penser que c'était quelque chose de trivial mais il n'en est rien au vu de la qualité du gaz produit par les usines disponibles ici ou là.

    La librairie http://www.cryptopp.com/ pourrait convenir, mais je n'ai pas compris son approche binaire des choses.
    A vrai dire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::string ma_chaine = "lalalalalal";
    std::string hahs_md5 = md5(ma_chaine);
    me suffirait amplement.

    Boost ne fourni aucun outil là-dessus en raison de possibles problèmes sur des outils mathématiques en cours de finalisation (enfin depuis quelques année je crois), dois-je me résoudre à coder les algos moi-même?

    En vous remerciant par avance pour vos retours d'expérience.

  2. #2
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Si tu utilises actuellement Qt, il fourni de quoi calculer des hash md5 et convertir vers et depuis des données encodées en base64.

    Cependant, si tu n'utilises pas Qt, je te conseilles de plutôt te tourner vers autre chose (inclure Qt juste pour ça est clairement overkill).

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    J'ai choisi boost, j'avais une chance sur 2

    Je suis pas prêt d'inclure Qt pour uniquement ça en effet.


    Du coup je suis très dubitatif sur la marche à suivre.
    Je ne saurais croire que personne ne se soit posé cette question avant.

  4. #4
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    pour le calcul d'un hash md5, la RFC 1321 fourni des sources
    pour l'encodage en base64 (en utilisant boost) un post sur StackOverflow en fourni une implémentation.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Vous n'avez même pas cité l'article Developpez.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Par défaut
    Bonsoir,

    Merci pour vos réponses.
    Je vais me diriger vers l'article de Developpez.com linké par Bousk, il m'a l'air plus simple à prendre en main.

    Néanmoins, il s'appuie sur l'utilisation d'un fichier. Est-il possible de s'en passer?
    Enfin, stocker les 64 entiers de 32 bits dont md5 a besoin en mémoire vive plutôt que dans une ressource sur disque?

    Au niveau de la base64, c'est ok pour encoder et décoder

Discussions similaires

  1. Calculer le hachage md5 d'une chaine de caractères
    Par Longrais dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/03/2012, 11h55
  2. [MD5] Calcul des coordonnées
    Par seeme dans le forum OpenGL
    Réponses: 1
    Dernier message: 20/08/2010, 08h52
  3. Réponses: 2
    Dernier message: 17/08/2009, 11h58
  4. [phpBB] Récupération des hash MD5 et login (phpbb) pour transfert
    Par julian-brokendolls dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 29/03/2006, 17h29
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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