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

Composants Java Discussion :

Utilisation d'un JPasswordField pour la connexion à une base de donnée MySQL


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut Utilisation d'un JPasswordField pour la connexion à une base de donnée MySQL
    Bonjour,

    J'ai créé une fenêtre pour me connecter à une base de donnée MySQL.
    Pour le mot de passe si j'utilise un champ JPasswordField et que je récupère sa valeur avec getPassword().toString() la connexion échoue.
    Par contre, si j'utilise un champ JTextField avec getText() la connexion réussie.

    J'ai affiché par println les résultats de getText() et getPassword() et effectivement getPassword() ne retourne pas ce que j'ai saisie dans mon champ.

    Y a-t-il un moyen de décrypter la valeur saisie dans un JPasswordField ou bien ce type de champ n'est pas adapté ?

    Merci


    S. Combes

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    getPassword retourne un tableau de char.
    Pour le transformer en String, on peut utiliser la méthode static String.valueOf.
    Doc

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut
    Bonjour,

    merci pour la réponse Nudger. Cela fonctionne effectivement

    Par contre, il y a un truc que je ne comprend pas :
    Qu'elle est la différence entre "getPassword().toString()" et String.valueOf(getPassword())" ?

    Pour moi getPassword retourne un char[] qui contient les caractères cryptés.
    Que "getPassword().toString()" retourne les caractères cryptés dans un String : ok. Mais pourquoi diable String.valueOf() arrive à les décrypter ?
    D'ailleurs, dans la doc il est bien précisé "a newly allocated string representing the same sequence of characters contained in the character array argument"


    Merci.


    S. Combes

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Les caractères ne sont pas cryptés.
    JPasswordField utilise un tableau plutôt qu'une chaîne de caractère pour permettre la suppression du mot de passe en mémoire dès que possible.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    JPasswordField jpf = ....;
    char[] password = jpf.getPassword();
    // J'utilise mon mot de passe
    ...
    // J'enlève tout ça de la mémoire
    for (int i = 0; i < password.length; i++)
    {
      password[i] = '\0';
    }
    La méthode toString() d'un tableau (même de caractère) ne renvoie pas la chaîne que représente le tableau mais ceci.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut
    Merci pour les précisions.


    S. Combes

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/05/2013, 18h12
  2. Réponses: 0
    Dernier message: 05/12/2011, 16h07
  3. connexion à une base de données mysql depuis c++
    Par btissama4 dans le forum C++
    Réponses: 4
    Dernier message: 16/02/2007, 11h55
  4. créer une boulce pour lire dans une base de donnéé MySQL
    Par pierrot10 dans le forum Administration
    Réponses: 1
    Dernier message: 26/07/2006, 14h21
  5. Connexion à une base de données mysql via access
    Par eautret dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2006, 10h02

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