Bonjour monsieu, suites a de nombreux problèmes, je n'ai pas pu vous envoyé mon programme avant car ceux ci était sur les machines de l'iut et je ne possède pas de machine virtuelle. Si vous avez un doute sur la création des programmes, je vous prit de vous référé aux date de modifications et créations de ceux ci. Cordialement, Fauvet Matthis
This commit is contained in:
parent
f4e0d591f7
commit
7b349fa904
93
cle.c
Normal file
93
cle.c
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
void gen_cle(char* chemincle,char* chemintxt){
|
||||||
|
/* Fonction qui génère une clé en fonction de la taille du
|
||||||
|
message laissé par l'utilisateur*/
|
||||||
|
|
||||||
|
/* On ouvre les flux pour enregistrer les éléments.*/
|
||||||
|
FILE* flux_c, *flux_t;
|
||||||
|
srand(time(NULL));
|
||||||
|
|
||||||
|
/* On créer des variables pour stockers nos futurs infos*/
|
||||||
|
char stck[2];
|
||||||
|
char elt[1];
|
||||||
|
|
||||||
|
/* Ouverture des fichiers */
|
||||||
|
flux_t = fopen(chemintxt, "r");
|
||||||
|
flux_c = fopen(chemincle, "w");
|
||||||
|
|
||||||
|
/* On parcours 1 a 1 tous les char que le fichier avec le
|
||||||
|
message de l'utilisateur*/
|
||||||
|
while(fread(stck, sizeof(char), 1, flux_t)){
|
||||||
|
/* Pour chaques elts, on ajoute un char de la table ASCII
|
||||||
|
en guise de char pour la cle*/
|
||||||
|
elt[0] = (char) random()%256;
|
||||||
|
fwrite(elt , sizeof(char), 1, flux_c);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(flux_c);
|
||||||
|
fclose(flux_t);
|
||||||
|
}
|
||||||
|
|
||||||
|
void gen_mot_cryp(char* chemincle, char* chemintxt, char* chemincrypte){
|
||||||
|
/* Cette fonction tranforme un message no crypté en un
|
||||||
|
crypté grace a la clé de cryptage / décryptage */
|
||||||
|
FILE* flux_c, *flux_t, *flux_crpt;
|
||||||
|
|
||||||
|
char stck[2];
|
||||||
|
char stckd[2];
|
||||||
|
char elt[1];
|
||||||
|
|
||||||
|
flux_t = fopen(chemintxt, "r");
|
||||||
|
flux_c = fopen(chemincle, "r");
|
||||||
|
flux_crpt = fopen(chemincrypte, "w");
|
||||||
|
|
||||||
|
/* Pour crypter le message, on prend la valeur décimale du x
|
||||||
|
elt de la cle qu'on aditionne a la valeur decimal du x elt du
|
||||||
|
message de l'utilisateur*/
|
||||||
|
while((fread(stck, sizeof(char), 1, flux_t)) && (fread(stckd, sizeof(char), 1, flux_c))){
|
||||||
|
elt[0] = (char) (((int) stck[0] + (int) stckd[0] )%256);
|
||||||
|
fwrite(elt , sizeof(char), 1, flux_crpt);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(flux_t);
|
||||||
|
fclose(flux_c);
|
||||||
|
fclose(flux_crpt);
|
||||||
|
}
|
||||||
|
|
||||||
|
void decrypt(char* chemincle, char* chemincrypte, char* chemin_decrpt){
|
||||||
|
/* Cette fonctione permet de décrypter le message,
|
||||||
|
tandis que nous avons aditionner le message a la clé
|
||||||
|
Cette fois, nous allons soustraire les valeurs de la clé aux
|
||||||
|
valeurs du texte crypté*/
|
||||||
|
FILE* flux_c, *flux_crpt, *flux_dcrpt;
|
||||||
|
|
||||||
|
char stck[2];
|
||||||
|
char stckd[2];
|
||||||
|
char elt[1];
|
||||||
|
|
||||||
|
flux_c = fopen(chemincle, "r");
|
||||||
|
flux_crpt = fopen(chemincrypte, "r");
|
||||||
|
flux_dcrpt = fopen(chemin_decrpt, "w");
|
||||||
|
|
||||||
|
while((fread(stck, sizeof(char), 1, flux_crpt)) && (fread(stckd, sizeof(char), 1, flux_c))){
|
||||||
|
/* N valeurs décimal des chars du txt_crypté - N valeurs décimals des chars de la clé */
|
||||||
|
elt[0] = (char) (((int) stck[0] - (int) stckd[0])%256);
|
||||||
|
fwrite(elt , sizeof(char), 1, flux_dcrpt);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(flux_c);
|
||||||
|
fclose(flux_crpt);
|
||||||
|
fclose(flux_dcrpt);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void){
|
||||||
|
/*Apelles des fonctions.*/
|
||||||
|
gen_cle("fichier_cle.txt", "fichier_txt.txt");
|
||||||
|
gen_mot_cryp("fichier_cle.txt", "fichier_txt.txt", "fichier_crypte.txt");
|
||||||
|
decrypt("fichier_cle.txt", "fichier_crypte.txt", "fichier_dcrpt.txt");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
BIN
executable
Executable file
BIN
executable
Executable file
Binary file not shown.
1
fichier_cle.txt
Normal file
1
fichier_cle.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
ワ.ェ。楞解;ユキ
|
1
fichier_crypte.txt
Normal file
1
fichier_crypte.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
$“
ßà_A8
|
1
fichier_dcrpt.txt
Normal file
1
fichier_dcrpt.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Hello World!
|
1
fichier_txt.txt
Normal file
1
fichier_txt.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Hello World!
|
Loading…
Reference in New Issue
Block a user