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 :

Cryptage password c++


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut Cryptage password c++
    bonjour,


    je désire réalisé un programme cryptant un mot de passe et inscrivant le mot de passe crypté dans un fichier.

    Est ce que la bibliothèque MD5 est conseillée?

    Connaissez vous une autre fonction de windows pouvant réaliser ce cryptage.


    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut
    Citation Envoyé par touys
    bonjour,


    je désire réalisé un programme cryptant un mot de passe et inscrivant le mot de passe crypté dans un fichier.

    Est ce que la bibliothèque MD5 est conseillée?

    Connaissez vous une autre fonction de windows pouvant réaliser ce cryptage.


    Merci
    md5 et sha1 sont les plus répandues. Assez (très) sur, donc je te conseil de les utiliser

  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
    Jao,
    Citation Envoyé par PP(Team)
    md5 et sha1 sont les plus répandues. Assez (très) sur, donc je te conseil de les utiliser
    md5 est cassé, on peut générer assez facilement une chaîne donnant le même hash qu'une autre.

    Je conseille plutôt d'enchaîner 2 ou 3 (ou plus) calculs avec différents algorithmes.

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,
    Citation Envoyé par droggo
    Jao,

    md5 est cassé, on peut générer assez facilement une chaîne donnant le même hash qu'une autre.

    Je conseille plutôt d'enchaîner 2 ou 3 (ou plus) calculs avec différents algorithmes.
    Juste pour info, parce que ca m'intrigue...

    Qu'appelle tu "assez facilement"

    Quand on y pense, aucune méthode de cryptage n'est jamais sur à 100%... le seul code qui ne sera jamais cassé, ce sera celui qui ne sera jamais utilisé

    Qu'il s'agisse de md5 ou de sha1 ou de n'importe quel autre algorithme de cryptage, destructif ou non, d'ailleurs, il sera toujours possible de générer quelque chose qui finisse par faire sauter la protection, si on s'en donne le temps et les moyens

    L'astuce, c'est que si, pour y arriver, il faut un cluster de 5 machines hyper performantes travaillant pendant 3 ans, la sécurité est quand meme plus au rendez vous que s'il "suffit" d'un 386 tournant pendant 5 minutes

    Comme tu peux le remarquer, "facilement" prend une signification toute autre selon que tu aies le temps et les moyens ou non

    De plus, si les "secrets défense" méritent ce qu'il y a de mieux, il reste bon de se poser la question de savoir quelle sécurité peut etre estimée suffisante pour "ton travail à toi"...

    A titre d'exemple, combien de temps te faudrait-il pour générer la somme md5 d'un fichier pris au hasard :
    39fdda485f3f1802352cf6067dea272c
    Cette somme md5 est celle utilisée pour le controle d'intégrité d'un fichier téléchargeable sur le ftp du projet gnu pris au hasard, et est donc parfaitement valide (et il est meme relativement aisé d'en retrouver l'origine )

    Et, sur base du temps mis sur ta machine pour y arriver, pourras tu encore estimer que ca se fait facilement
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    Citation Envoyé par droggo
    Jao,

    md5 est cassé, on peut générer assez facilement une chaîne donnant le même hash qu'une autre.

    Je conseille plutôt d'enchaîner 2 ou 3 (ou plus) calculs avec différents algorithmes.
    mouais, n'exgaerons rien, il est possible de generer 2 chaines ayant le meme hash, mais ca reste a priori impossible (modulo un choix de mot de passe raisonnable) de genere une chaine ayant un hash donné.

    le md5 reste encore extremement sur. mais tu peux aussi te tourner vers le sha-1 ou les sha-256 qui sont plus solides encore.

    [edit] d'ailleurs il me semble que c'est toujous md5 qui est utilisé pour stocker les mdp linux.

  6. #6
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    Citation Envoyé par koala01
    aucune méthode de cryptage n'est jamais sur à 100%...
    si un simple XOR avec une cle aussi longue que le message, et en utilisant jamais 2 fois la meme clé. ca n'est pas evident a mettre en pratique, mais ca a été (et c'est peut etre encore) utilisé pour des communications entre gouvernements.

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Citation Envoyé par jobherzt
    si un simple XOR avec une cle aussi longue que le message, et en utilisant jamais 2 fois la meme clé. ca n'est pas evident a mettre en pratique, mais ca a été (et c'est peut etre encore) utilisé pour des communications entre gouvernements.
    Et encore, si tu te donne le temps et les moyens, tu arriveras vraissemblablement à décrypter le message...

    Peut etre dans dix ou vingt ans... mais tu y arriveras
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    non, dans ce cas la c'est tout simplement impossible. pas tres long, vraiment impossible !!! meme au bou d'un emps infiniment long tu ne pourrais pas trouver le message.. tout simplement parce qu'en testant toutes les cles possibles, vu que le message est de meme longueur que la cle, tu vas passer par tous les messages possibles de cette longueur... comment saurais tu lequel est le bon ?

    alors que si la cle est sensiblement plus courte que le message, en essayant toutes les possibilités, tu ne trouveras a priori qu'un seul texte qui ait du sens parmi des milliards de suite de lettres sans signification. donc tu peux retrouver le message si tu prend un peu de temps

  9. #9
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Citation Envoyé par jobherzt
    non, dans ce cas la c'est tout simplement impossible. pas tres long, vraiment impossible !!! meme au bou d'un emps infiniment long tu ne pourrais pas trouver le message.. tout simplement parce qu'en testant toutes les cles possibles, vu que le message est de meme longueur que la cle, tu vas passer par tous les messages possibles de cette longueur... comment saurais tu lequel est le bon ?
    Parce que si tu te retrouves avec un message
    la pomme mange la vache dans le train
    ou bien, on joue à "ici londres... berce mon coeur d'une langueur monotone", ou bien, c'est que ce n'est vraiment pas le message recherché

    [EDIT]Sans compter le fait que, vu le temps que tu auras mis à le décoder, tu profiteras du recul historique pour pouvoir trouver la signification réelle
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  10. #10
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    oui, mais si la cle est aussi longue que le message, tu vas passer par toutes, absolument toutes les suites de lettre possibles, donc en particulier tous les messages coherent possibles, et meme si tu sais de quoi c'est censé parler, tu ne pourras pas savoir quel est le bon...

    genre si tu as :

    "j'arrive a 10h a marseille"

    et

    "hey,j'arrive a midi a lyon"

    tu fais comment ? alors que si la cle est ne serait ce que 2 fois moins longue que le message, c'est statistiquement quasiment impossible de tomber sur cette situtation.

  11. #11
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Pour info le MD5 est une fonction de hachage cryptographie. Ce qui veut dire que tu vas géneré une clé qui pourra contrôler la valider de ton password. Mais tu ne pourra en aucun cas retrouver le password original.

    Pour info dans l'API windows il existe des outils pour crypter :
    http://msdn2.microsoft.com/en-us/library/aa380255.aspx

  12. #12
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    @ jobherzt mais si le type est, effectivement, arrivé à lyon, tu auras ta certitude

    Lui serait-il possible d'arriver à 10heures à Lyon et à midi à Marseille et, mieux encore, l'a-t-il fait (ben non, il est passé par Callais, pas par Marseille )

    @themadmax Le problème, ce n'est pas le fait de "retrouver le mot de passe", c'est celui de pouvoir "le contourner"...

    Typiquement, les méthodes utilisées pour crypter un mot de passe n'ont pas vocation à permettre son décryptage (la récupération du mot de passe d'origine)...

    Ce sont des méthodes "destructives"...

    Tu le crypte donc avant d'enregistrer la "clé" de manière plus ou moins accessible, et, d'un autre coté, lors de la tentative d'identification, tu refais pareil avec le mot de passe fourni, et tu compare les deux clés...

    Si la clé (re)calculée correspond à la cle enregistrée, c'est, a priori que le mot de passe correspond... sauf que, comme indiqué, si tu fournis un mot de passe qui produit la meme clé... tu as un "passe partout"

    Il en est autrement, ainsi que le laisse suggérer le joyeux échange entre jobherzt, des contenus qui ont vocation à etre décryptés (récupérés dans leur forme originale)...

    Mais, à ce moment là, on devra se tourner vers une variante du "cryptage de cesar" ou similaire
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  13. #13
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    Citation Envoyé par koala01
    @ jobherzt mais si le type est, effectivement, arrivé à lyon, tu auras ta certitude
    oui, mais c'est un exemple idiot ce qu'il faut voir c'est que si tu essaie de decrypter, disons un message de 2 pages en utilisant toutes les cles possibles, si la cle est aussi longue que le message tu vas vraiment avoir tout et n'importe quoi : tous les articles de tous les journaux du monde passé, present et a venir, les tirages de tous les lotos, l'histoire de ta vie en allemand, l'histoire de ta vie dans une langue qui n'existe pas, mais ou ton prenom serais remplacé par jhksdjf, toutes les poesies de moins de 2 pages ecrites et a ecrire... et tous les messages possibles ou j'arrive a lyon a tous les endroits possibles, a toutes les dates possibles,... bref, tu ne pourras rien apprendre que tu ne sache deja, et c'est bien ce qu'on appelle "impossible a decrypter".

    Mais, à ce moment là, on devra se tourner vers une variante du "cryptage de cesar" ou similaire
    aïe non, ya mieux que ça, le cryptage de cesar tiens moins d'une nano seconde.. vigenere (cesar mais avec une cle de plusieurs lettre), tiens au moins une demi seconde !! plus serieusement, mieux vaut se tourner vers AES ou blowfish. mais dans le cas de mots de passe lié avec une application, un cryptage reversible c'est pas secure

  14. #14
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    @themadmax Le problème, ce n'est pas le fait de "retrouver le mot de passe", c'est celui de pouvoir "le contourner"...
    Le problème c'est plutôt que les forum dérive trop souvant du post original. Moi je répond à touys, et si je voulais parler de cracking je créer un nouveau Post.

  15. #15
    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
    Hal,

    Citation Envoyé par koala01
    ...

    Qu'appelle tu "assez facilement":
    ...
    Et, sur base du temps mis sur ta machine pour y arriver, pourras tu encore estimer que ca se fait facilement
    En cherchant "Xiaoyun Wang" md5 sur Google, tu trouveras plein de résultats.

    On parle au plus en heures avec un p4 2 GHz, ce qui est donc à la portée de presque tout le monde

  16. #16
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    oui, mais encore une fois sa technique permet de generer des collisions, cad de trouver 2 chaines qui ont le meme hash, mais il ne permet pas de generer une chaine qui donne un hash donné. donc, cette technique ne permet pas en un temps raisonnable de casser un mot de passe hashé en md5.

  17. #17
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Citation Envoyé par droggo
    Hal,


    En cherchant "Xiaoyun Wang" md5 sur Google, tu trouveras plein de résultats.

    On parle au plus en heures avec un p4 2 GHz, ce qui est donc à la portée de presque tout le monde
    C'est à la portée de tout le monde de trouver une collision en quelques heures à peine, parmis les 16^32 possiblités qui existent...

    Mais, combien de collisions devra tu trouver avant d'obtenir celle qui correspond à une clé bien précise parmis ces 16^32 possibilités

    On ne parle d'ailleurs plus de collision, mais bien de preimage, à ce moment là...

    Et s'il te faut quelques heures (dépendemment de ta machine) pour trouver une collison quelconque, combien t'en faudra-t-il pour trouver une colllision bien précise parmis les 340 282 366 920 938 446 346 337 460 743 177 000 000 potentielles et plus (pour rappel, la somme md5 est une succession de 32 valeurs hexadécimales, ce qui donne ce nombre pharaonique de possibilités )

    Bien sur, avec un peu (heu... plutot, beaucoup ) de chance, tu tombera tout de suite sur LA solution... mais avec à peine moins de chance, tu n'est pas couché

    Il y a quelques années un test a été fait en ce sens sur une phrase bien précise, dont le nombre et la taille des mots étaient connus...

    Il a quand meme fallu un temps certain, utilisant un partage de ressource du genre de seti at home pour trouver la phrase en question

    Bon, peut etre y a-t-il eu pas mal de collisions... mais n'empeche

    @jobherzt au temps pour moi... je me suis mal exprimé... je voulais parler d'un cryptage inversable,(dont l'expression la plus simple est le cryptage de cesar ) par opposition à ce qui est obtenu avec la md5
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  18. #18
    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
    Lab,
    Citation Envoyé par jobherzt
    oui, mais encore une fois sa technique permet de generer des collisions, cad de trouver 2 chaines qui ont le meme hash, mais il ne permet pas de generer une chaine qui donne un hash donné. donc, cette technique ne permet pas en un temps raisonnable de casser un mot de passe hashé en md5.
    Tu as raison.

    En voyant les mots collision et md5, je n'étais pas allé plus loin, et j'en avais déduit qu'on pouvait générer une chaîne ayant un hash donné.

    @ koala01 : ça répond en même temps à ta critique , mais c'est gentil quand même de me rappeler ce qu'est le md5

    D'ailleurs,
    Citation Envoyé par koala01
    (pour rappel, la somme md5 est une succession de 32 valeurs hexadécimales, ce qui donne ce nombre pharaonique de possibilités
    A proprement parler, le hash md5 est une valeur de 128 bits, qu'on représente généralement par une chaîne en hexadécimal, soit 32 caractères

  19. #19
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut
    oulà oulà beaucoup de réponse , merci pour tous ces messages mais inutile de partir si loin dans le débat je ne souhaite pas un cryptage pour ariane 24
    Mais cela m'apprend pas mal de choses alors merci.

    J'ai utilisé md5 pour crypter ma chaine reste a comparer cette chaine avec celle que j'entrerais lors de mon identification de mon ihm.

    Merci pour tout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cryptage Password dba_users
    Par yazidi_marwen dans le forum PL/SQL
    Réponses: 6
    Dernier message: 31/05/2012, 14h51
  2. Cryptage password pour login
    Par marycandy dans le forum Langage
    Réponses: 12
    Dernier message: 28/09/2010, 09h01
  3. cryptage password et bean spring
    Par jmmaugis dans le forum Sécurité
    Réponses: 2
    Dernier message: 10/10/2008, 11h04
  4. Cryptage du password en amont ?
    Par Tchupacabra dans le forum Sécurité
    Réponses: 9
    Dernier message: 09/12/2007, 10h41
  5. Algo Cryptage de password
    Par Ajite dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/04/2007, 19h01

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