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:
fauvet 2023-01-02 15:25:51 +01:00
parent f4e0d591f7
commit 7b349fa904
6 changed files with 97 additions and 0 deletions

93
cle.c Normal file
View 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

Binary file not shown.

1
fichier_cle.txt Normal file
View File

@ -0,0 +1 @@
ワ.ェ。楞解;ユキ

1
fichier_crypte.txt Normal file
View File

@ -0,0 +1 @@
$“ ßà_­A8

1
fichier_dcrpt.txt Normal file
View File

@ -0,0 +1 @@
Hello World!

1
fichier_txt.txt Normal file
View File

@ -0,0 +1 @@
Hello World!