Advertisement
Vincent38190

algorithme.c

Jan 18th, 2016
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.76 KB | None | 0 0
  1. #ifndef DEF_algorithme
  2. #define DEF_algorithme
  3. #include "algorithme.h"
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <math.h>
  8. #endif // DEF_cl
  9. #define TAILLE_MAX 1000
  10. #define RANDOM_MAX 1000
  11. #define RANDOM_MIN 1
  12.  
  13.  
  14. void Chiffrement(const char entree[], char sortit[], const int cle)
  15. {
  16.     int longueurChaine = strlen(entree);
  17.         int i;
  18.         int place = 0;
  19.         for(i = 0; i < longueurChaine; i ++)
  20.         {
  21.             place ++;
  22.             if (entree[i] == 95)
  23.             {
  24.                 sortit[i] = entree[i];
  25.                 place --;
  26.             }
  27.             else
  28.             {
  29.  
  30.  
  31.             sortit[i] = ((( entree[i] - 97)+(cle * place ))%26)+97;
  32.             }
  33.         }
  34.  
  35. }
  36.  
  37. void Dechiffrement(const char entree[],char sortit[],const int cle)
  38. {
  39.  
  40.  
  41.     int longueurChaine = strlen(entree);
  42.         int i;
  43.         int place = 0;
  44.         for(i = 0; i < longueurChaine; i ++)
  45.         {
  46.             place ++;
  47.             if (entree[i] == 95)
  48.             {
  49.                 sortit[i] = entree[i];
  50.                 place --;
  51.             }
  52.             else
  53.             {
  54.  
  55.  
  56.              sortit[i] = (((entree[i] - 97) - (cle * place )) % 26)+123 ;
  57.                 while (sortit[i] > 122)
  58.                 {
  59.                     sortit[i] = ((sortit[i]-97) % 26) + 97 ;
  60.                 }
  61.  
  62.             }
  63.         }
  64.  
  65. }
  66.  
  67. void Save(const char messagesNonCrypte[], const char messagesCrypte[] ,const int cle)
  68. {
  69.  
  70.     char copieMessagesNonCrypte[TAILLE_MAX] = "" , copieMessagesCrypte[TAILLE_MAX]= "";
  71.     int copieCle = cle;
  72.     strcpy(copieMessagesNonCrypte,messagesNonCrypte);
  73.     strcpy(copieMessagesCrypte,messagesCrypte);
  74.     FILE* save = NULL;
  75.     save = fopen("backup.save","w");
  76.  
  77.     CrypterSave(copieMessagesNonCrypte,copieMessagesCrypte,&copieCle);
  78.     if(save != NULL)
  79.     {
  80.         fprintf(save,"%s %s %d", copieMessagesNonCrypte , copieMessagesCrypte , copieCle);
  81.         fclose(save);
  82.     }
  83.     else
  84.     {
  85.         printf("Impossible de sauvgarder le fichier\n");
  86.     }
  87.  
  88. }
  89.  
  90. void AfficherSave()
  91. {
  92.     char messagesNonCrypte[TAILLE_MAX] = "" , messagesCrypte[TAILLE_MAX] = "";
  93.     int cle = 0;
  94.     FILE *save = NULL;
  95.     save = fopen("backup.save","r");
  96.     if(save != NULL)
  97.     {
  98.            DecrypterSave(messagesNonCrypte,messagesCrypte,cle);
  99.            fscanf(save, "%s  %s %d", messagesNonCrypte , messagesCrypte , &cle );
  100.            fclose(save);
  101.            printf("Message non crypte : %s\nMessage crypte : %s\nCle : %d\n", messagesNonCrypte , messagesCrypte , cle);
  102.     }
  103.     else
  104.     {
  105.         printf("Impossible de charger le fichier\n");
  106.     }
  107.  
  108. }
  109.  
  110. void LireFichier(const char nomDuFichierSansExtension[], const int mode, const int cle)
  111. {
  112.     FILE *fichier = NULL;
  113.     char extension[5] = ".txt", nomDuFichier[TAILLE_MAX] = "";
  114.     strcpy(nomDuFichier , nomDuFichierSansExtension);
  115.     strcat(nomDuFichier,extension);
  116.     fichier = fopen(nomDuFichier,"r");
  117.     char chaine[TAILLE_MAX] = "";
  118.     if(fichier != NULL)
  119.     {
  120.         while(fgets(chaine, TAILLE_MAX , fichier))
  121.         {}
  122.     }
  123.  
  124. }
  125.  
  126. void CrypterSave(char messagesNonCrypte[], char messagesCrypte[],int *cle)
  127. {
  128.  
  129.     char sortit1[TAILLE_MAX] = "", sortit2[TAILLE_MAX] = "";
  130.     int sortit3 = 0;
  131.     strcpy(sortit1, messagesNonCrypte);
  132.     strcpy(sortit2, messagesCrypte);
  133.     sortit3 = *cle;
  134.     int cleRandom = (rand()%(RANDOM_MAX - RANDOM_MIN + 1)) + RANDOM_MIN;
  135.     Chiffrement(sortit1,messagesNonCrypte,cleRandom);
  136.     Chiffrement(sortit2,messagesCrypte,cleRandom);
  137.     *cle = (sortit3 + cleRandom);
  138.     FILE *fichier = NULL;
  139.     fichier = fopen("abc.bcd" , "w");
  140.     fprintf(fichier , "%d",cleRandom);
  141.     fclose(fichier);
  142.  
  143.  
  144. }
  145.  
  146. void DecrypterSave(char messagesNonCrypt[],char messagesCrypt[],int *cle)
  147. {
  148.     char sortit1[TAILLE_MAX] = "", sortit2[TAILLE_MAX] = "";
  149.     int sortit3 = 0, cleRandom = 0;
  150.     FILE *crypt = NULL;
  151.     crypt = fopen("abc.bcd","r");
  152.     FILE *fichier = NULL;
  153.     fichier = fopen("backup.save","r");
  154.     if(fichier != NULL && crypt != NULL)
  155.     {
  156.         fscanf(crypt ,"%d", &cleRandom);
  157.         fscanf(fichier , "%s %s %d", sortit1 , sortit2 , &sortit3 );
  158.         Dechiffrement(sortit1,messagesNonCrypt,cleRandom);
  159.         Dechiffrement(sortit2,messagesCrypt,cleRandom);
  160.         *cle = sortit3 - cleRandom ;
  161.         fclose(crypt);
  162.         fclose(fichier);
  163.     }
  164.     else
  165.     {
  166.         char erreur[13] = "";
  167.         if(fichier != NULL)
  168.         {
  169.         const char erreurCopie[11] = "le fichier";
  170.         strcpy(erreur , erreurCopie);
  171.         }
  172.         else
  173.         {
  174.         const char erreurCopie[13] = "la sauvgarde";
  175.         strcpy(erreur,erreurCopie);
  176.         }
  177.         printf("\nErreur de decryptage du fichier ( erreur pour ouvrir %s )", erreur);
  178.     }
  179.  
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement