Déchiffrement du Code César
Crypter-décrypter en utilisant l'algorithme de césar
Bonjour a tousVoici ma première source ;)
Elle permet de crypter un texte en utilisant l'algorithme de Cesar (déballage de n lettres sur tout le texte), n peut etre choisi par l'utilisateur ;)
Elle permet aussi de décrypter un texte crypter selon cette méthode
Le texte a crypter ou a décrypter doit être présent dans un fichier nommé readme.txt a la racine de la source compilée ;)
Lors du cryptage et du décryptage, le texte original est gardé
Crypter-decrypter en utilisant l'algorithme de cesar
Pour le decryptage, toutes les possibilités (n=1 >> n=26) sont écrites ci dessous :#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <windows.h> #define TAILLE_MAX 500 void clean_stdin (void); void pause (int); char *openfichier() { static char str[2000] = ""; FILE* fichier = NULL; char chaine[TAILLE_MAX] = ""; fichier = fopen("readme.txt", "r"); if (fichier != NULL) { printf ("\n---== Texte a crypter ==---\n\n\n"); while (fgets(chaine, TAILLE_MAX, fichier) != NULL) { strcat(str, chaine); printf("%s", chaine); } printf ("\n\n\n---== Texte a crypter ==---"); fclose(fichier); } else { system("cls"); printf("\n\nImpossible d'ouvrir le fichier readme.txt\n\n"); pause (1); exit(EXIT_FAILURE); } return str; } void cesar_crypt (int decallage, char *texte) { char c; int decMin = decallage - 'a'; decallage -= 'A'; while(c = *texte) { if(c > 'z') goto nextCHR; if(c < 'A') goto nextCHR; if(c <= 'Z') goto goMAJ; if(c < 'a') goto nextCHR; c = 'a' + (c + decMin) % 26; goto goREPLACE; goMAJ: c = 'A' + (c + decallage) % 26; goREPLACE: *texte = c; nextCHR: texte++; } } int main(int argc, char *argv[]) { int menu = 0; printf("\n==== Menu ====\n\n\n"); printf("1. Cryptage\n\n"); printf("2. Decryptage\n\n"); printf("3. Quitter\n\n\n"); scanf("%d", &menu); printf("\n"); if (menu == 1) { int decalage; int crypter = 0; FILE* fichier = NULL; char *texte; texte = openfichier(); system("cls"); printf ("\n\nUtiliser un decallage de combien de lettres pour crypter ce fichier ?\n\n"); scanf ("%d", &decalage); printf ("\n\nVoulez-vous vraiment crypter ce texte en utilisant un decalage de %d lettres ?\n\n", decalage); printf ("Ecrivez 1 pour Oui ou 0 pour Non\n\n"); scanf ("%d", &crypter); if (crypter == 1) { system ("cls"); cesar_crypt (decalage, texte); printf ("\n---== Texte apres chiffrement ==---\n\n\n"); printf ("%s\n", texte); printf ("\n\n---== Texte apres chiffrement ==---\n\n"); fichier = fopen("readme.txt", "a+"); if (fichier != NULL) { fprintf(fichier, "\n\nTexte Crypte : \n\n%s", texte); fclose(fichier); } pause (1); } else if (crypter == 0) { system ("cls"); printf ("\nAu revoir, et bonne journee\n\n"); pause (1); } else if (crypter < 0 || crypter > 1) { printf ("\nVeuillez entrer 0 ou 1\n\n"); scanf ("%d", &crypter); while (crypter < 0 || crypter > 1) { printf ("\nVeuillez entrer 0 ou 1\n\n"); scanf ("%d", &crypter); } if (crypter == 1) { system ("cls"); cesar_crypt (decalage, texte); printf ("\n---== Texte apres chiffrement ==---\n\n\n"); printf ("%s\n", texte); printf ("\n\n---== Texte apres chiffrement ==---\n\n"); fichier = fopen("readme.txt", "a+"); if (fichier != NULL) { fprintf(fichier, "\n\nTexte Crypte : \n\n%s", texte); fclose(fichier); } pause (1); } else if (crypter == 0) { system ("cls"); printf ("\nAu revoir, et bonne journee\n\n"); pause (1); } } } if (menu == 2) { int decalage = 26 ; FILE* fichier = NULL; char *texte; texte = openfichier(); while (decalage > 0) { cesar_crypt (decalage, texte); fichier = fopen("readme.txt", "a+"); if (fichier != NULL) { fprintf(fichier, "\n\n%s", texte); fclose(fichier); } decalage--; } system("cls"); printf("\n\nDecryptage reussi, disponible dans le fichier readme.txt\n\n"); pause(1); } if (menu == 3) { getchar(); } if (menu > 3 || menu < 1) { exit(EXIT_FAILURE); } } void clean_stdin (void) { int c = 0; do { c = getchar(); } while (c != '\n' && c != EOF); } void pause (int b) { printf ("\nAppuyez sur Entrer pour quitter\n"); if (b==0) getchar (); else if (b==1) { clean_stdin (); getchar (); } } /*Merci a SoftEvans, Melem, Pouet_forever et Brunews*/
Crypter-decrypter en utilisant l'algorithme de cesar
Déchiffrement du Code César
Reviewed by Badr Dev
on
14:28
Rating:
Aucun commentaire: