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

Sécurité Java Discussion :

Décrypter un String


Sujet :

Sécurité Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Par défaut Décrypter un String
    Bonjours,
    Est-ce qu’on peut décrypter un mot de type String, pas de type Byte, car le mot que je veut le décrypter je l’ai récupérer à partir d’un fichier XML

    Merci d'avance

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Qu'entends-tu par "décrypter"?
    Une String n'est qu'une suite de Byte, tu peux passer de l'un à l'autre comme tu veux

    edit: preum's ouais!!!

  3. #3
    Invité
    Invité(e)
    Par défaut
    C'est un peu vague comme question...
    Ma première réponse est : oui
    Bon comme je suis gentil je vais essayer de t'aider un peu plus
    • comment est représentée ta chaine ? Base64 ? ASCII ?
    • quel est l'algorithme de cryptage ?

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Je ne comprends pas bien la question...

    Si tu as un texte crypté, il te faut :
    - connaître l'algorithme de cryptage
    - connaître la clé de décryptage

    Si tu as un texte haché (MD5 d'un mot de passe par exemple), tu ne peux en théorie pas récupérer le mot de passe original.
    Dans la pratique certains algorithmes ne sont pas complètement fiables et on peut retrouver un mot de passe correspondant si on connaît l'algorithme de hachage.

    [EDIT]Doublement grillé...[/EDIT]
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 29
    Par défaut
    J’ai utilisé le code de l’algorithme de Blowfish qui se trouve ds ce lien , et l’adapter à mes besoins donc j’ai définie autre classe contenant deux méthodes crypter et décrypter voici le code:
    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
     
    import java.math.BigInteger;
    public class Crypto {
    String nom;
       BigInteger nomcry;
       void crypter()
       {
           System.out.println("debut  de cryptage");
       	nom = "admin";//le mot de passe que je le recuperai aprés
     
       	 System.out.println("plaintext = " + nom);
       	 MyBlowfish bf = new MyBlowfish();
    	    bf.generateKey();
    	    byte[] secretKey = bf.getSecretKeyInBytes();
    	    byte[] ciphertext = bf.crypt(nom);
    	     nomcry= new BigInteger(ciphertext);
    	    System.out.println("ciphertext = " + nomcry);
       }
       void decryter()
       {
     
       	MyBlowfish bf = new MyBlowfish();
        bf.generateKey();
        byte[] secretKey = bf.getSecretKeyInBytes();
       	bf.setSecretKey(secretKey);
        String plaintext2 = bf.decryptInString(nomcry.toByteArray());
        System.out.println("plaintext2 = " + plaintext2);
        if (!plaintext2.equals(nom)) System.out.println("Error: plaintext2 != plaintext");
       }
     
    }
    lors de l'execution ,le code crypter est marche bien ,mais pour le décryptage ,L’erreur que j’ai vu :
    < javax.crypto.BadPaddingException: Given final block not properly padded >

    je crois que l'erreur est ds nomcry.toByteArray(),mais j'ai ps pu résoudre
    merci

  6. #6
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Erreur de padding ---> Trop long à expliquer ici.

    Trouves-toi un bouquin sur le chiffrement ou un tuto web.

    Tu ne peux pas utiliser ce genre de technologie sans un minimum de recherche et de connaissances à assimiler.

Discussions similaires

  1. Décrypter un String MD5 en clair
    Par seb759 dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 20/08/2012, 12h01
  2. Réponses: 2
    Dernier message: 11/04/2012, 15h12
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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