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

avec Java Discussion :

Java cryptage avec decalage


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Java cryptage avec decalage
    Bonjour, je dois faire un programme java qui fait le cryptage d'une chaîne de caractère avec un décalage.

    Le problème est que je n'ai jamais fait de java avant. Les cours que je possède ne m'aide pas vraiment sur cet exercice.
    Je suis sensé créer une méthode qui retourne le texte non cryptée et l'autre qui crypte le texte avec le décalage.

    La seule chose que j'ai réussi à faire 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
     
    public class chainecryptee {	
     String enclair;
    int decalage; 
     
    public  chainecryptee( String enclair , int decalage ) {
    	this.enclair="par defaut";
    	this.decalage= 1; 
    	}; 
     
    public String decrypte() { return enclair; } ; 
     
    private   static String decalecararctere(String enclair, int decalage) {
     
    	return ( enclair < 'A' || enclair > 'Z' )? enclair : ( String )((( enclair - 'A' + decalage) % 26 ) + 'Z') ;
    } ;
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub

    Je suis vraiment perdu, si vous pouvez m'aider avec des directives ou des liens vers des cours ou des tutoriels , je vous en serai reconnaissant.

    Merci.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 255
    Points
    255
    Par défaut
    Pour faire le decalage, tu devrais parcourir ton String caractere par caractere puis incrementer ce caractere lu par ton decalage...


    Un exemple rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static void main(String[] args) {
    		String enclair = "par defaut";
    		String crypte = "";
    		int decalage = 1;
    		char c;
    		for (int i = 0; i < enclair.length(); i++) {
    			c = enclair.charAt(i);
    			crypte += (char) (c + decalage);
    		}
    		System.out.println(crypte);
    	}

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour ,
    Merci pour la réponse rapide, je l'ai utilisé pour étoffer mon code. Pour faire le décalage, je dois utiliser la fonction decalecaractere;
    Elle décale que les char alors que ma fonction decrypte est sensée retourner un string. J'ai essayé de récupérer le résultat et de le convertir en string mais cela ne fonctionne, je n'arrive à retourner qu'un caractère et pas tous ceux entrées.
    Mon code est le suivant:
    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
    package chaine;
     
    public class chainec {
    	String enclair;
    	int decalage;
     
    	public chainec(String enclair, int decalage) {
    		this.enclair= enclair;
    		this.decalage= decalage;
    	}
    	public String decrypte() {
    		return enclair;
    	}
     
    	public static char  decalecaractere( char c, int decalage) {
    		return (c< 'a' || c> 'z')? c: (char)((( c - 'a' + decalage )% 26) + 'a');
     
    	}
    	public String crypte() {
    		char c= 0;
    		String mot="";
    		char d;
    		for (int i = 0; i < enclair.length(); ) {
    			c = enclair.charAt(i);
                d = (decalecaractere(c, this.decalage));
                mot=Character.toString(d);
    		   return mot;};
    		   return mot;
     
    	}
    	public static void main(String[] args) {
    		String enclair = "par defaut";
    		chainec salu = new chainec( "salut", 3);
    		String crypte = "";
    		int decalage = 1;
    		char c;
    		for (int i = 0; i < enclair.length(); i++) {
    			c = enclair.charAt(i);
    			crypte += (char) (c + decalage);
    		}
    		System.out.println(crypte);
    		System.out.println(salu.decrypte());
    		System.out.println(salu.crypte());
     
    	}
     
    }
    Fichiers attachés Fichiers attachés

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 255
    Points
    255
    Par défaut
    Il est normal que tu ne récupères qu'un seul caractère, il te manque un i++ dans ta boucle for pour lire tous les caractères du String.

    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
    public class Chaine{
     
    	String enclair;
    	int decalage;
     
    	public Chaine(String enclair, int decalage) {
    		this.enclair = enclair;
    		this.decalage = decalage;
    	}
     
    	public String decrypte() {
    		return enclair;
    	}
     
    	public static char decalecaractere(char c, int decalage) {
    		return (c < 'a' || c > 'z') ? c : (char) (((c - 'a' + decalage) % 26) + 'a');
    	}
     
    	public String crypte() {
    		char c = 0;
    		String mot = "";
    		char d;
    		// ajout du i++ afin de parcourir tous les caractere de ton String
    		for (int i = 0; i < enclair.length(); i++) {
    			c = enclair.charAt(i);
    			d = (decalecaractere(c, this.decalage));
    			mot += Character.toString(d);
    			// suppression du return, sinon au premier caractere tu sors de la boucle
    		}
    		return mot;
     
    	}
     
    	public static void main(String[] args) {
    		String s = "salut";
    		int decalage = 3;
    		Chaine chaine = new Chaine(s, decalage);
     
    		System.out.println("Chaine en clair : " + chaine.decrypte());
    		System.out.println("Chaine cryptee : " + chaine.crypte());
    	}
    }

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    C'est vrai, . J'ai corrigé l'erreur et tout fonctionne parfaitement.
    Merci beaucoup.

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

Discussions similaires

  1. [DOM][Java] Problème avec le retour de getNodeName()
    Par anutka dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 11/04/2012, 21h38
  2. Un petit cryptage avec java et C#
    Par Nechtan dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 19/03/2009, 15h47
  3. [Java] Erreur avec FOP
    Par osoumayaj dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 11/08/2006, 13h46
  4. 3D en Java. Problème avec les textures !
    Par dotrungtien dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 07/04/2006, 19h43
  5. Debutant en JAVA, problème avec 1er programme
    Par Gymerus dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 07/09/2005, 12h10

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