VARI NFP135 Projet
Le code de César
Le code de César est la méthode de cryptographie la plus ancienne communément admise
par l'histoire. Il consiste en une substitution mono-alphabétique, la substitution est définie
par un décalage de lettres. Par exemple, si on remplace A par D, on remplace B par E, C par
F, D par G, etc... Donnons un exemple à partir de ce décalage de 3 lettres :
Texte clair A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Texte
codé D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Source : http://www.bibmath.net/crypto/substi/cesar.php3
Un exemple de texte à coder est le suivant :
L'algorithme opère sur une forêt. Une forêt est ici un
ensemble d'arbres étiquetés complets
Le texte codé est alors :
O*dojrulwkph#rsëuh#vxu#xqh#iruíw1#Xqh#iruíw#hvw#lfl#xq#hqvhpeo
h#g*dueuhv#ìwltxhwìv#frpsohwv
Travail demandé :
Etape 1
Ecrire un programme Java, qui, étant donnée une chaîne de caractères uniquement composé
de lettres minuscules :
saisit un entier (<256) qui représentera le décalage de lettres que l'on veut utiliser
crée la nouvelle chaîne de caractères obtenue après cryptage par la méthode de
César.
affiche le texte codé
décode le fichier texte crypté afin de retrouver l'original
affiche le texte décodé
Etape 2
Ecrire un programme Java qui, à partir d'un fichier contenant le texte source à crypter :
lit le fichier en mémoire
saisit un entier qui représentera le décalage de lettres que l'on veut utiliser
crée un nouveau fichier texte contenant le nouveau texte obtenu après cryptage par
la méthode de César.
affiche le texte codé
Etape 3
Il s'agit de réorganiser votre programme en le découpant en classes. Chaque tâche principale
devient ainsi une classe.
1/3
Etape 4
Munir l'application d'une interface graphique simple (cf la classe JoptionPane) permettant
les saisies du nom du fichier à coder, de la valeur de décalage et des fonctionnalités à
réaliser (cryptage, décryptage) ainsi que les résultats à afficher.
Note :
On attachera une attention particulière à la décomposition par raffinements successifs de la
solution ainsi qu'à la documentation (javadoc).
Rappels :
déclarer la variable int i de valeur initiale '1' (int i = '1';)correspond à lui
affecter la valeur de son code ASCII ( ici 49 ) .
déclarer la variable char a de valeur initiale 49 (char a = 49;)correspond à lui
affecter la valeur du caractère de code ASCII 49 (ici '1').
Ce que vous devez rendre
Votre projet doit être développé sous bluej.
Il vous faut ensuite créer un fichier d'archive (.jar) de votre projet. Ce fichier contiendra le
code source ainsi que les informations suivantes décrivant tout projet bluej:
PROJECT TITLE:
son titre
PURPOSE OF PROJECT:
en quelques mots clés
VERSION or DATE:
précisez
les étapes réalisées
HOW TO START THIS PROJECT:
dans quelle classe se trouve la méthode main
AUTHORS: vos nom et prénom
USER INSTRUCTIONS:
autre remarque utile
Comment créer un fichier d'archive du projet
2/3
Cliquez sur cette feuille pour
ajouter les informations
demandées ci-dessus
Ensuite, dans le menu Project, choisir l'option Create jar file.
Cliquez sur continue. Un fichier suffixé par .jar est créé. C'est ce fichier qu'il vous faudra
remettre selon les modalités ci-dessous.
Comment rendre votre projet
Pour remettre votre travail, vous utiliserez l'application SystemeTest que vous lancerez à
partir de ce lien : http://java.cnam.fr/SystemeTest/.
Pour vous loger sur cette application, il faut utiliser les mêmes identifiants qu'en TP., puis
s'inscrire à l'UE NFP135.
Pour plus d'informations sur cette application, reportez vous au tutoriel :
http://deptinfo.cnam.fr/~graffion/SystemeTest/captureInscriptionAudit
eurBG.htm
La date ultime de remise est le 29 avril 2011 avant minuit. Attention, au delà de cette date, il
vous sera impossible de rendre votre travail. Aucune dérogation ne sera faite. Pour plus de
sécurité, ne pas attendre la dernière limite.
3/3
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !