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

JDBC Java Discussion :

problème de authentification mot de passe crypter md5


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 16
    Points : 12
    Points
    12
    Par défaut problème de authentification mot de passe crypter md5
    bonsoir ,
    j ai une base de donnée crée par symfony 3.4 crypter en md5
    je fait identifier par java le problème je connait le login et le mot de passe mais lorsque je fait le login avec java il ne trouve pas voila mes code :
    controlleur javafx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     @FXML
        private void connexionButton(ActionEvent event) throws IOException {
            LoginServices service = new LoginServices();
            int x =service.Valide(usern.getText(), passw.getText());
            if(x!=-1 && x!=0 && x!=-2)
            {
                closeStage();
                Paw.session=service.getInformation(x);
                ConnexionServices s=new ConnexionServices();
                if(s.existe(x))
                {
                    s.updateConnexion(x);
                }
                else
                {
                    s.inserer(new Connexion(x));
                }
                loadMain();  
            }
            else if ( x == 0)
            {
                // information fausse
                messageInformationFausses();
            }
            else if ( x == -1)
            {
                // Erreur, réesseyée plus tard
                messageErreur();
            }
            else
            {
                // Utilisateur bloqué
                messageIsBloqued();
     
            }
        }
    fichier service login
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    public class LoginServices {
        protected Connection connection;
     
     
        public LoginServices (){
       connection = MyConnexion.Get_Instance().getCon();
     
        }
     public int Valide (String usern,String passw)
        {
            String req="SELECT * FROM fos_user where username=? and password=?" ;
            try { 
                PreparedStatement ste = connection.prepareStatement(req) ;
                ste.setString(1,usern) ; 
                ste.setString(2,MD5(passw)) ;
                ResultSet rs = ste.executeQuery(); 
                if (rs.next())
                {
                    if (rs.getString("enabled").startsWith("0"))
                    {
                        return -2;
                    }
                    else{
                        return rs.getInt("id");
                    }
                }
                else
                {
                    return 0;
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
                return -1;
            }
        }
     
      public String MD5(String md5) {
            try {
                java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
                byte[] array = md.digest(md5.getBytes());
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < array.length; ++i) {
                  sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
               }
                return sb.toString();
            } 
            catch (java.security.NoSuchAlgorithmException e) {
            }
                return null;
            }
    }
    je teste le résulta de valide et toujours 0 merci de m aider

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Salut,
    peux-tu faire un test et voir quelle valeur de password est renvoyé?
    car a ma connaissance tu ne devrais pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ste.setString(2,MD5(passw)) ;
    mais plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ste.setString(2,passw) ;
    Eric

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    Salut,
    peux-tu faire un test et voir quelle valeur de password est renvoyé?
    car a ma connaissance tu ne devrais pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ste.setString(2,MD5(passw)) ;
    mais plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ste.setString(2,passw) ;
    Eric
    merci mais il faut converté le pass en md5 car le password et crypter dans le base de donnée je pense qu il faut convertir mon mot de passe pour comparer mais je ne sais pas pourquoi le comparaison ne marche pas

  4. #4
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    ah ok je comprend ce que tu veux faire :

    c´est plutot comme ceci que doir ressembler ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String req="SELECT * FROM fos_user where username=? and password=md5(?)" ;
    PreparedStatement ste = connection.prepareStatement(req) ;
                ste.setString(1,usern) ; 
                ste.setString(2, passw) ;
                ResultSet rs = ste.executeQuery();
    cela devrait marcher.
    Eric

Discussions similaires

  1. Connexion avec mot de passe crypter en md5
    Par MKTB269 dans le forum JDBC
    Réponses: 1
    Dernier message: 12/09/2017, 10h23
  2. Réponses: 0
    Dernier message: 26/02/2014, 10h42
  3. Crypter le mot de passe sans md5
    Par Zalawy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/03/2013, 18h46
  4. Réponses: 0
    Dernier message: 07/11/2009, 14h41
  5. Comment crypter les mots de passe avec MD5 ?
    Par Fngonka dans le forum ASP.NET
    Réponses: 19
    Dernier message: 31/07/2008, 09h48

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