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 :

Problème de décryptage


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Par défaut Problème de décryptage
    Bonjour,

    J'utilise des méthodes de cryptage et de décryptage qui me serve à crypter un message. Le seul problème est que je stocke le message crypté dans une base de données, mais lorsque je veux décrypter ce message cela ne fonctionne pas, je vous montre mes codes:

    -méthode de cryptage et de décryptage
    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
     
    	public static byte[] encrypter(final String message, SecretKey cle)
    	throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
    		Cipher cipher = Cipher.getInstance("DESede");// getInstance() = Renvoyer une instance de l'objet pour un algorithme particulier dont l'implémentation est celle fournie par le fournisseur précisé
    		cipher.init(Cipher.ENCRYPT_MODE, cle); //Initialiser la classe pour le mode de fonctionnement précisé (Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE)
    		byte[] donnees = message.getBytes(); // getBytes() = encode un jeu de caractères en une séquence d'octets
     
    		return cipher.doFinal(donnees); //Ajouter la dernière partie des données à traiter et générer le résultat
    	}
     
    	public static String decrypter(final byte[] donnees, SecretKey cle)	
    	throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
    		Cipher cipher = Cipher.getInstance("DESede");
    		cipher.init(Cipher.DECRYPT_MODE, cle);
     
    		return new String(cipher.doFinal(donnees));
    	}
     
    	public static SecretKey cleCrypt()
    	{
    		KeyGenerator keyGen;
    		try {
    			keyGen = KeyGenerator.getInstance("DESede");
    			keyGen.init(112);
    			SecretKey cle = keyGen.generateKey();
     
    			return cle;
     
    		} catch (Exception e) {
    			e.printStackTrace();
    			return null;
    		}
    	}
    -la méthode qui affiche le message
    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
     
    	public void affichageDossier(String nom, String prenom) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException
    	{
    		int id = recupIdSportif(nom, prenom);
    		try {
     
    		    //Création d'un objet Statement
    		    Statement state = (Statement) Connexion().createStatement();
    		    //L'objet ResultSet contient le résultat de la requête SQL
    		    ResultSet result = state.executeQuery(	"SELECT nom, prenom, numero_v, date_v, info_visite "+
    		    										"FROM visite, sportif "+
    		    										"WHERE sportif.id = visite.id AND numero_v ="+ id +" ");
    		    //On récupère les MetaData
    		    ResultSetMetaData resultMeta = (ResultSetMetaData) result.getMetaData();
     
    		    for(int i = 1; i <= resultMeta.getColumnCount(); i++)
    		    {
    		    	System.out.println(resultMeta.getColumnName(i).toUpperCase());
    		    }		    
     
    		    while(result.next())
    		    {         
    		    	for(int i = 1; i <= resultMeta.getColumnCount()-1; i++)
    		    	{
    		    		System.out.println(result.getObject(i).toString());		    		
    		    	}
     
    		    	String textConsultEnc = result.getObject(resultMeta.getColumnCount()).toString();
    		    	System.out.println(textConsultEnc);// affiche [B@17a2457
    		    	byte[] textEnc = textConsultEnc.getBytes();
    		    	System.out.println(textEnc);// affiche [B@11d72ca
    		    	System.out.println(decrypter(textEnc, cleCrypt()));
    		    }
     
    		    result.close();
    		    state.close();
     
    			} catch(SQLException se)
    			{
    			      //Handle errors for JDBC
    			      se.printStackTrace();
    			}
    	}

    Merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Ligne 28 : String textConsultEnc = result.getObject(resultMeta.getColumnCount()).toString();

    En gros, tu récupères un Object qui correspond à la dernière colonne, et tu lui dis "affiches le toString correspondant"
    Ca t'affiche [B@17a2457, donc globalement le hashcode de ton Objet, donc j'ai envie de dire : ce qui tu récupères n'est pas un String !

    Modifie un peu ton code et dis moi ce qu'il te dit en faisant ça en ligne 27:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("Classe : " + result.getObject(resultMeta.getColumnCount()).getClass().getName());

    Tu peux aussi me dire ce que tu dis en affichant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("Classe SQL : " + resultMeta.getColumnClassName(resultMeta.getColumnCount()));

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Par défaut
    Merci, donc j'ai essayé ce que vous m'avez proposé et il m'affiche: [B

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Je crois que la discution fait suite a ce post : http://www.developpez.net/forums/d15...actere-change/

    Moi hier j'ai demandé a vérifier le contenu de la table de la DB pour voir si il n'y avait pas d'erreur a l'insertion... pas de réponses.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    J'avais vu aussi wax78

    A titre personnel, ça m'étonne que les deux lignes que j'ai donné affichent "[B"...

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Par défaut
    Ces lignes devraient afficher quelque chose de particulier?
    Parce que j'ai copié exactement le bout de code que vous m'avez donné.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/02/2011, 20h58
  2. Problème cryptage décryptage BlowFish
    Par xokami35x dans le forum Sécurité
    Réponses: 3
    Dernier message: 31/03/2010, 13h15
  3. Problème de décryptage avec Rijndael
    Par kaderscream dans le forum C#
    Réponses: 4
    Dernier message: 02/06/2008, 19h56
  4. RSA-probléme de décryptage
    Par mahis_ dans le forum C#
    Réponses: 3
    Dernier message: 23/03/2008, 19h35
  5. Probléme de décryptage avec la clé publique
    Par vladvad dans le forum C#
    Réponses: 9
    Dernier message: 25/10/2007, 17h44

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