Cryptographie de César
Fermé
psy
-
Modifié le 4 oct. 2017 à 19:01
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 6 oct. 2017 à 15:49
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 6 oct. 2017 à 15:49
A voir également:
- Cryptographie de César
- Pièce jules césar 2002 valeur - Forum Loisirs / Divertissements
- Problème du au service de cryptographie ✓ - Forum Logiciels
- Gta sa cesar vialpando mission bug - Forum Jeux vidéo
- Gta san andreas cesar vialpando mission - Forum Jeux vidéo
- Problème sur GTA San Andreas: Cesar Vialpando - Forum Jeux vidéo
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
Modifié le 4 oct. 2017 à 17:25
Modifié le 4 oct. 2017 à 17:25
Salut psy,
Tu vas avoir le même problème avec les caractères accentués, les virgules, les points, etc.
Tu ne peux pas chiffrer ces caractères, car tu n'as pas le choix de l'alphabet à prendre en compte (la String ALPHABET).
Dès lors, tu pourrais :
1- refuser de chiffrer une chaîne comportant des caractères non présents dedans,
ou
2- alerter l'utilisateur en lui indiquant que des caractères non chiffrables sont contenus et: (a) retirer les caractères non présents dans la String ALPHABET du résultat chaineCodee, en lui disant ce que tu as fait; ou (b) si le caractère à chiffrer n'est pas dans la liste des caractères présents dans la String ALPHABET, tu ne le chiffres pas, et tu l'ajoutes tel quel à chaineCodee, en disant à l'utilisateur que ces caractères n'ont pas été chiffrés.
Dal
Tu vas avoir le même problème avec les caractères accentués, les virgules, les points, etc.
Tu ne peux pas chiffrer ces caractères, car tu n'as pas le choix de l'alphabet à prendre en compte (la String ALPHABET).
Dès lors, tu pourrais :
1- refuser de chiffrer une chaîne comportant des caractères non présents dedans,
ou
2- alerter l'utilisateur en lui indiquant que des caractères non chiffrables sont contenus et: (a) retirer les caractères non présents dans la String ALPHABET du résultat chaineCodee, en lui disant ce que tu as fait; ou (b) si le caractère à chiffrer n'est pas dans la liste des caractères présents dans la String ALPHABET, tu ne le chiffres pas, et tu l'ajoutes tel quel à chaineCodee, en disant à l'utilisateur que ces caractères n'ont pas été chiffrés.
Dal
6 oct. 2017 à 14:51
6 oct. 2017 à 14:59
Dal l'a expliqué : "Tu ne peux pas chiffrer ces caractères"
Pour y arriver il faudrait modifier du code ailleurs que là où tu as le droit de le faire...
La seule chose que tu peux faire c'est indiquer à l'utilisateur qu'il n'a pas le droit de prendre ces caractères, mais dans tous les cas ça ne les chiffrera pas.
Modifié le 6 oct. 2017 à 16:23
@Psy: c'est visiblement un exercice que tu fais, alors si on le fait à ta place on ne te rend pas vraiment service. Cela dit, voilà une indication complémentaire qui devrait te mettre sur la piste : pour tester si le caractère que tu veux chiffrer est dans ALPHABET ou pas, tu peux utiliser la valeur de retour de la méthode indexOf, qui va retourner -1 si le caractère n'est pas présent dans la chaîne
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf%28int%29
ensuite, tu décides ce que ton programme va faire selon la stratégie que tu auras choisit pour traiter ton problème : renvoyer une erreur et arrêter de chiffrer, ou ajouter les caractères non chiffrables tels quels à chaineCodee, en disant à l'utilisateur que ces caractères n'ont pas été chiffrés.
(ou toute autre option que tu choisiras en l'absence de pré-requis particuliers ou d'indications de ton enseignant sur cette question)
mais déjà, la première chose à faire est de détecter le problème, afin que le résultat que tu prétends être une chaîne chiffrée soit exact, au lieu de traiter les -1 comme étant une valeur que tu utilises pour calculer valeurClef avec ton DECALAGE (ce qui n'a pas de sens), comme tu le fais actuellement dans ton code.
Est-ce plus clair ?
Dal