Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef DEF_algorithme
- #define DEF_algorithme
- #include "algorithme.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #endif // DEF_cl
- #define TAILLE_MAX 1000
- #define RANDOM_MAX 1000
- #define RANDOM_MIN 1
- void Chiffrement(const char entree[], char sortit[], const int cle)
- {
- int longueurChaine = strlen(entree);
- int i;
- int place = 0;
- for(i = 0; i < longueurChaine; i ++)
- {
- place ++;
- if (entree[i] == 95)
- {
- sortit[i] = entree[i];
- place --;
- }
- else
- {
- sortit[i] = ((( entree[i] - 97)+(cle * place ))%26)+97;
- }
- }
- }
- void Dechiffrement(const char entree[],char sortit[],const int cle)
- {
- int longueurChaine = strlen(entree);
- int i;
- int place = 0;
- for(i = 0; i < longueurChaine; i ++)
- {
- place ++;
- if (entree[i] == 95)
- {
- sortit[i] = entree[i];
- place --;
- }
- else
- {
- sortit[i] = (((entree[i] - 97) - (cle * place )) % 26)+123 ;
- while (sortit[i] > 122)
- {
- sortit[i] = ((sortit[i]-97) % 26) + 97 ;
- }
- }
- }
- }
- void Save(const char messagesNonCrypte[], const char messagesCrypte[] ,const int cle)
- {
- char copieMessagesNonCrypte[TAILLE_MAX] = "" , copieMessagesCrypte[TAILLE_MAX]= "";
- int copieCle = cle;
- strcpy(copieMessagesNonCrypte,messagesNonCrypte);
- strcpy(copieMessagesCrypte,messagesCrypte);
- FILE* save = NULL;
- save = fopen("backup.save","w");
- CrypterSave(copieMessagesNonCrypte,copieMessagesCrypte,&copieCle);
- if(save != NULL)
- {
- fprintf(save,"%s %s %d", copieMessagesNonCrypte , copieMessagesCrypte , copieCle);
- fclose(save);
- }
- else
- {
- printf("Impossible de sauvgarder le fichier\n");
- }
- }
- void AfficherSave()
- {
- char messagesNonCrypte[TAILLE_MAX] = "" , messagesCrypte[TAILLE_MAX] = "";
- int cle = 0;
- FILE *save = NULL;
- save = fopen("backup.save","r");
- if(save != NULL)
- {
- DecrypterSave(messagesNonCrypte,messagesCrypte,cle);
- fscanf(save, "%s %s %d", messagesNonCrypte , messagesCrypte , &cle );
- fclose(save);
- printf("Message non crypte : %s\nMessage crypte : %s\nCle : %d\n", messagesNonCrypte , messagesCrypte , cle);
- }
- else
- {
- printf("Impossible de charger le fichier\n");
- }
- }
- void LireFichier(const char nomDuFichierSansExtension[], const int mode, const int cle)
- {
- FILE *fichier = NULL;
- char extension[5] = ".txt", nomDuFichier[TAILLE_MAX] = "";
- strcpy(nomDuFichier , nomDuFichierSansExtension);
- strcat(nomDuFichier,extension);
- fichier = fopen(nomDuFichier,"r");
- char chaine[TAILLE_MAX] = "";
- if(fichier != NULL)
- {
- while(fgets(chaine, TAILLE_MAX , fichier))
- {}
- }
- }
- void CrypterSave(char messagesNonCrypte[], char messagesCrypte[],int *cle)
- {
- char sortit1[TAILLE_MAX] = "", sortit2[TAILLE_MAX] = "";
- int sortit3 = 0;
- strcpy(sortit1, messagesNonCrypte);
- strcpy(sortit2, messagesCrypte);
- sortit3 = *cle;
- int cleRandom = (rand()%(RANDOM_MAX - RANDOM_MIN + 1)) + RANDOM_MIN;
- Chiffrement(sortit1,messagesNonCrypte,cleRandom);
- Chiffrement(sortit2,messagesCrypte,cleRandom);
- *cle = (sortit3 + cleRandom);
- FILE *fichier = NULL;
- fichier = fopen("abc.bcd" , "w");
- fprintf(fichier , "%d",cleRandom);
- fclose(fichier);
- }
- void DecrypterSave(char messagesNonCrypt[],char messagesCrypt[],int *cle)
- {
- char sortit1[TAILLE_MAX] = "", sortit2[TAILLE_MAX] = "";
- int sortit3 = 0, cleRandom = 0;
- FILE *crypt = NULL;
- crypt = fopen("abc.bcd","r");
- FILE *fichier = NULL;
- fichier = fopen("backup.save","r");
- if(fichier != NULL && crypt != NULL)
- {
- fscanf(crypt ,"%d", &cleRandom);
- fscanf(fichier , "%s %s %d", sortit1 , sortit2 , &sortit3 );
- Dechiffrement(sortit1,messagesNonCrypt,cleRandom);
- Dechiffrement(sortit2,messagesCrypt,cleRandom);
- *cle = sortit3 - cleRandom ;
- fclose(crypt);
- fclose(fichier);
- }
- else
- {
- char erreur[13] = "";
- if(fichier != NULL)
- {
- const char erreurCopie[11] = "le fichier";
- strcpy(erreur , erreurCopie);
- }
- else
- {
- const char erreurCopie[13] = "la sauvgarde";
- strcpy(erreur,erreurCopie);
- }
- printf("\nErreur de decryptage du fichier ( erreur pour ouvrir %s )", erreur);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement