From 7b349fa9046db73bc10cd7701bd3a1dd0967bd5e Mon Sep 17 00:00:00 2001 From: fauvet Date: Mon, 2 Jan 2023 15:25:51 +0100 Subject: [PATCH] =?UTF-8?q?Bonjour=20monsieu,=20suites=20a=20de=20nombreux?= =?UTF-8?q?=20probl=C3=A8mes,=20je=20n'ai=20pas=20pu=20vous=20envoy=C3=A9?= =?UTF-8?q?=20mon=20programme=20avant=20car=20ceux=20ci=20=C3=A9tait=20sur?= =?UTF-8?q?=20les=20machines=20de=20l'iut=20et=20je=20ne=20poss=C3=A8de=20?= =?UTF-8?q?pas=20de=20machine=20virtuelle.=20Si=20vous=20avez=20un=20doute?= =?UTF-8?q?=20sur=20la=20cr=C3=A9ation=20des=20programmes,=20je=20vous=20p?= =?UTF-8?q?rit=20de=20vous=20r=C3=A9f=C3=A9r=C3=A9=20aux=20date=20de=20mod?= =?UTF-8?q?ifications=20et=20cr=C3=A9ations=20de=20ceux=20ci.=20Cordialeme?= =?UTF-8?q?nt,=20Fauvet=20Matthis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cle.c | 93 +++++++++++++++++++++++++++++++++++++++++++++ executable | Bin 0 -> 21016 bytes fichier_cle.txt | 1 + fichier_crypte.txt | 1 + fichier_dcrpt.txt | 1 + fichier_txt.txt | 1 + 6 files changed, 97 insertions(+) create mode 100644 cle.c create mode 100755 executable create mode 100644 fichier_cle.txt create mode 100644 fichier_crypte.txt create mode 100644 fichier_dcrpt.txt create mode 100644 fichier_txt.txt diff --git a/cle.c b/cle.c new file mode 100644 index 0000000..45896d0 --- /dev/null +++ b/cle.c @@ -0,0 +1,93 @@ +#include +#include +#include + +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; +} + diff --git a/executable b/executable new file mode 100755 index 0000000000000000000000000000000000000000..3ecac1132c2b1f3fb13016217b443c5f6de70a57 GIT binary patch literal 21016 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 T0kz5OyEi-bSC<%+kmA1pMEh9y literal 0 HcmV?d00001 diff --git a/fichier_cle.txt b/fichier_cle.txt new file mode 100644 index 0000000..69256d8 --- /dev/null +++ b/fichier_cle.txt @@ -0,0 +1 @@ +Ü.ª¡ž¿‰ð;Õ· \ No newline at end of file diff --git a/fichier_crypte.txt b/fichier_crypte.txt new file mode 100644 index 0000000..83633f1 --- /dev/null +++ b/fichier_crypte.txt @@ -0,0 +1 @@ +$“ ßà_­A8 \ No newline at end of file diff --git a/fichier_dcrpt.txt b/fichier_dcrpt.txt new file mode 100644 index 0000000..c57eff5 --- /dev/null +++ b/fichier_dcrpt.txt @@ -0,0 +1 @@ +Hello World! \ No newline at end of file diff --git a/fichier_txt.txt b/fichier_txt.txt new file mode 100644 index 0000000..c57eff5 --- /dev/null +++ b/fichier_txt.txt @@ -0,0 +1 @@ +Hello World! \ No newline at end of file