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

Java Discussion :

Authentification avec Postgres


Sujet :

Java

  1. #1
    Membre averti
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut Authentification avec Postgres
    bonjour ,
    mon probleme c'est que je n'arrive pas a faire ma procedure d'authentification parceque les données dans postgres sont encodées ,comment je puisse decodeé ces dernier ou encodées mes mien pour j'arrive a faire ma requete ,

    en faite il y a une fonction propre a postgres qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    encode(data bytea, type text)

    mais je ne sais pas comment utiliser ,
    Si quelqu'un a une idée priere de me l'indiquer merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    Par défaut postgresql utilises l'encodage LATIN1 , tu peux le forcer en UTF-8 directement sur la base cela t'éviteras plein de problèmes ultérieurement si tu comptes stocker des caractères de langues étrangères par la suite.

    Sinon je pense plus que ton problème viens qu'en général le mot de passe est crypté(md5,sha-256, etc..) et qu'ensuite on encode en base64 pour le stocker dans la bdd.

  3. #3
    Membre averti
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut
    merci Elendhil,
    effectivement j'ai force postgres a faire l'encodage en UTF-8 .

    ,mon probleme est tres simple ,j'ai login et mots de passe que je test sur elles .
    les mots de passe dans ma base sont encodé comme ceci:"ANcMVhiSqUmAvv0SpADiautLhZk="
    alors je n'arrive pas a faire la comparaison du valeur entré en formulaire et celle qui existe dans ma base .

    je développe en java et ma requete est sous cette forme:

    "from Medecin where login='"+login+"' and mdp='"+mdp+"'"
    le mdp dans postgres est sous forme "ANcMVhiSqUmAvv0SpADiautLhZk="

    ma classe java est
    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
    public static void main(String[] args)
    throws HibernateException {
    List<Medecin> medList = null;
    String login="log";
       String mdp="mdp";
            Session session = NewHibernateUtil.currentSession();
            Transaction tx =  session.beginTransaction();
            System.out.println("session hibernate ithalit");
          Query hibernateQuery = (Query) session.createQuery("from Medecin where login='"+login+"' and mdp='"+mdp+"'");
            medList = hibernateQuery.list();
    //List list = session.find("from Medecin where nom like '%t'");
    Iterator it = medList.iterator();
    while(it.hasNext())
    {
    Medecin contact = (Medecin)it.next();
    System.out.println(contact.getNom());
    System.out.println("boucle while");
    }
    tx.commit();
    System.out.println("tx commit");
    NewHibernateUtil.closeSession();
     
    }

    merci d'avance

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    [HS]
    Ils ne sont pas unique tes logins ? Car si c'est le cas tu as juste besoin du login , tu simplifies ta requête, et tu fais un : query.getSingleResult() .

    Comme cela tu obtiens juste un médecin et pas une liste de médecins contenant un seul médecin.

    Ensuite sur ce médecin tu récupère son mdp pour le vérifier.

    [/HS]

    Bon ton mdp est sous cette forme tu dis : "ANcMVhiSqUmAvv0SpADiautLhZk" cela me donne pas grand chose de savoir cela ^^ . A "priori" c'est ce que j'expliquais dans mon premier message , la chaîne a été encodé en base 64.

    Donc tu décodes cette chaîne encodé en base64 pour obtenir un mdp qui va être encrypté en quoi je peux pas te dire , faut que tu demandes à celui qui a développé l'application ou tu regardes dans le code sur la partie inscription mais il y a de grande chance que ce soit du MD5. Tu ne pourras jamais revenir au mdp originel depuis le hash md5 stocké dans la base. Donc pour vérifier tu prends le mdp saisie dans le formulaire , tu le hash , et tu vérifies que les 2 hashs sont bien identique. Pourquoi le hash a été encrypté en base64 , parce-que cela évite l'insertion de caractères spéciaux dans la bdd. Surtout quand l'encodage de la base est en LATIN1.

    Voilà.

    Alors pour t'éviter de réécrire la fonction base64 en java , tu peux utiliser , l'api "commons codec" de apache , elle est même surement déjà installé sur ton serveur d'application.

    En ce qui concerne le MD5 , tu trouveras plein de mini tutos pour vérifier ton hash en java.

Discussions similaires

  1. DESCRIBE avec Postgres ?
    Par sarah79 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/05/2007, 13h54
  2. Limiter les affichages d'une requete avec POstgre
    Par jenny50 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/01/2006, 16h26
  3. Pas de fenètre d'authentification avec .htaccess
    Par damjal dans le forum Apache
    Réponses: 2
    Dernier message: 02/11/2005, 08h40
  4. [MySQL] mécanisme d'authentification avec BD
    Par lalyly dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/10/2005, 13h26
  5. les cleints avec postgres
    Par hama dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/09/2005, 11h27

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