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

Discussion :

Comment crypter un mot de passe (QString) en Sha1 ?

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Comment crypter un mot de passe (QString) en Sha1 ?
    Bonjour à tous,

    Je développe actuellement un logiciel réseau où un mot de passe est nécessaire afin de se connecter au serveur.

    Je cherche donc un moyen de crypter ce mot de passe (récupéré dans un champ de saisie sous la forme d'un QString), puis de récupérer le mot de passe crypté dans un autre QString.

    Voici le source auquel j'avais pensé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QByteArray mdp_crypted = QCryptographicHash::hash(ui->champSaisiePassword->text(), QCryptographicHash::Sha1);
    QString str_mdp_crypted = mdp_crypted.toHex() ;
    Le problème est que la méthode hash() prend un QByteArray comme premier paramètre et non un QString.

    Est-ce possible donc de convertir un QString en QByteArray ?
    Ou y a-t-il d'autres moyens de crypter un mot de passe sous QT ?
    Si vous connaissez comment crypter une chaine (std::string, char* ...) avec une autre librairie, je suis aussi preneur

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 695
    Points : 188 895
    Points
    188 895
    Par défaut
    Salut,

    On va commencer par un peu de vocabulaire : on chiffre si on peut récupérer le contenu chiffré (et que l'algo est prévu pour ça : on retrouve TOUJOURS le contenu d'origine). Or, SHA-1 est un algo de hashage : il est prévu pour qu'on ne puisse pas retrouver la chaîne d'origine (même si c'est possible dans la plupart des cas).

    À part ça, un petit tour dans la doc : http://qt.developpez.com/doc/latest/qstring.html. Recherche le mot-clé QByteArray dedans.

    Tu trouves ceci : http://qt.developpez.com/doc/latest/...g.html#details, 5e paragraphe. On te propose des fonctions pour récupérer le contenu d'un QString dans un QByteArray, mais il faut en connaître l'encodage.

    Autre piste, http://qt.developpez.com/doc/latest/qbytearray.html. Nouveau mot-clé, évidemment : QString.

    Dans la liste des fonctions, tu trouves ceci, par exemple : http://qt.nokia.com/doc/4.6/qbytearray.html#append-2. Ce n'est sûrement pas la meilleure méthode, loin de là, mais tu la trouves en presque rien comme temps dans la doc.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup, je vais tester un peu ce que je peux faire à l'aide de la documentation.

    Pour le chiffrage, mon but est justement qu'on ne puisse pas retrouver la chaine d'origine (même si c'est possible ^^).

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 695
    Points : 188 895
    Points
    188 895
    Par défaut
    Citation Envoyé par Ðalven Voir le message
    Pour le chiffrage, mon but est justement qu'on ne puisse pas retrouver la chaine d'origine (même si c'est possible ^^).
    Ce n'est donc pas du chiffrage, mais bien du hashage.

    Hashage = empreinte d'un message, de quelques bits en général (160 pour le SHA-1).
    Chiffrage = message sous une autre forme, indéchiffrable sans la clé et l'algorithme associé (du moins à l'origine).

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ah ok merci

    Je suis arrivé à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    QByteArray mdp ;
    QByteArray mdp_sha1 ;
    QString str_mdp_sha1 ;
    //...
    mdp.append( ui->champSaisiePassword->text() );
    mdp_sha1 = QCryptographicHash::hash( mdp, QCryptographicHash::Sha1 );
    str_mdp_sha1 = mdp_sha1.toHex() ;
    Cela semble être ce à quoi je voulais arrivé au départ mais
    Ce n'est sûrement pas la meilleure méthode, loin de là
    Je vais essayer de me renseigner un peu pour en savoir plus

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

Discussions similaires

  1. [MySQL] comment crypter mon mot de passe
    Par msi79 dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 20/03/2012, 20h18
  2. Comment Crypter un mot de passe dans un fichier .ini?
    Par Hamdi Hedhili dans le forum C++/CLI
    Réponses: 4
    Dernier message: 12/10/2010, 15h09
  3. Réponses: 4
    Dernier message: 20/03/2009, 17h39
  4. Comment crypter les mots de passe avec MD5 ?
    Par Fngonka dans le forum ASP.NET
    Réponses: 19
    Dernier message: 31/07/2008, 10h48
  5. comment crypter les mots de passe?
    Par JauB dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/11/2005, 17h37

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