a faire
This commit is contained in:
parent
e725f80c3a
commit
bc1d4c9f93
45
Vernam/afaire.c
Normal file
45
Vernam/afaire.c
Normal file
@ -0,0 +1,45 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define CODAGE
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
FILE *f_m, *f_k, *f_mc; /* strcutures permettant, une fois FOPEN
|
||||
exécuté de recupérer des informations pour manipuler les fichiers
|
||||
en C */
|
||||
|
||||
int c;
|
||||
int k1;
|
||||
int calcul;
|
||||
int option;
|
||||
|
||||
/* recupération sur la ligne de commande des noms de fichiers et option (-c pour codage
|
||||
-d pour décodage : message cle message_calculé
|
||||
|
||||
|
||||
|
||||
code -c f1 f2 f3
|
||||
code -d f1 f2 f3
|
||||
|
||||
*/
|
||||
|
||||
datafile = ouvre_fichier(argv[1], argv[2], argv[3]);
|
||||
ouvre_fichier (argv[1], argv[2], argv[3], &f1, &f2, &f3);
|
||||
|
||||
while ((c = fgetc(datafile.f_m)) != EOF)
|
||||
|
||||
{
|
||||
k1 = fgetc(datafile.f_k);
|
||||
if (option == CODAGE)
|
||||
calcul = (c+k1) % 256;
|
||||
else
|
||||
calcul = c-k1 >= 0?c-k1:256-(c-k1);
|
||||
fputc(calcul, datafile.f_mc);
|
||||
}
|
||||
|
||||
|
||||
fermefichier(datafile);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
}
|
6
Vernam/afaire.txt
Normal file
6
Vernam/afaire.txt
Normal file
@ -0,0 +1,6 @@
|
||||
1. Un programme qui génère une clé (au moins aussi longue que le message)
|
||||
2. compléter le programme afaire.c pour qu'en fonction des paramètres de la ligne de commande il code ou décode.
|
||||
|
||||
|
||||
A rendre pour le 15 décembre, sous le format suivant:
|
||||
- un depot git
|
Loading…
Reference in New Issue
Block a user