Bonjour à tous,
Voici un tool que je me suis codé cette nuit, c'est un code simple qui ne fait que XORé la chaîne qu'on lui envoie avec une clé qu'on choisira, même si il existe plein de tools sur le net je préfère faire les miens ; pour deux raisons simples:
-Ne pas être dépendant
-M'entraîner
Place au code, (j'avoue c'est un peu dégeulasse):
On peut remarquer que j'aurais pu utiliser la même fonction pour déchiffrer mais par soucis de propreté j'ai préféré faire comme ci-dessus.
Voici un tool que je me suis codé cette nuit, c'est un code simple qui ne fait que XORé la chaîne qu'on lui envoie avec une clé qu'on choisira, même si il existe plein de tools sur le net je préfère faire les miens ; pour deux raisons simples:
-Ne pas être dépendant
-M'entraîner
Place au code, (j'avoue c'est un peu dégeulasse):
Code:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXBUFFERSIZE 1024 void encrypt(char *C,int B); void decrypt(char *C,int B); int main() { char *buffer; buffer=(char *)malloc(MAXBUFFERSIZE * sizeof(char)); int B; int choice; printf("????????????????????????????????????????????????????????????????????????????\n"); printf("? SIMPLE XOR ENCRYPT/DECRYPT by EpicOut ?\n"); printf("????????????????????????????????????????????????????????????????????????????\n"); printf("\n"); printf(" --------------------------------------------------\n"); printf(" |0. Chiffrer |\n"); printf(" |1. Dechiffrer |\n"); printf(" --------------------------------------------------\n"); printf("\n"); printf("Ton choix :"); scanf("%d",&choice); while(getchar()!='\n'); // clear the buffer if(choice==0) { printf("string which is going to be xor'd: "); fgets(buffer,MAXBUFFERSIZE,stdin); printf("\r\n %s XOR\n (?)\n: ",buffer); scanf("%d",&B); encrypt(buffer,B); free(buffer); buffer=NULL; } else if (choice==1) { printf("string to be unxor'd: "); fgets(buffer,150,stdin); printf("\r\n (?)\n XOR\n %s :",buffer); scanf("%d",&B); decrypt(buffer,B); free(buffer); buffer=NULL; } else printf("Choose 0 or 1 ."); free(buffer); buffer=NULL; return 0; } encrypt(char *C,int B) { int i; for(i=0;i<C[i];i++) { if (strcmp(&C[i],"\0")!= 0) { C[i]^=B; } } printf("C XOR B(\"%d\") = A (\"%s\")",B,C); } decrypt(char *C, int B) { int i; for(i=0;i<C[i];i++) { if (strcmp(&C[i],"\0")!= 0) { C[i]^=B; } } printf("A XOR B(\"%d\") = C (\"%s\")",B,C); } #include <string.h> #define MAXBUFFERSIZE 1024 void encrypt(char *C,int B); void decrypt(char *C,int B); int main() { char *buffer; buffer=(char *)malloc(MAXBUFFERSIZE * sizeof(char)); int B; int choice; printf("????????????????????????????????????????????????????????????????????????????\n"); printf("? SIMPLE XOR ENCRYPT/DECRYPT by EpicOut ?\n"); printf("????????????????????????????????????????????????????????????????????????????\n"); printf("\n"); printf(" --------------------------------------------------\n"); printf(" |0. Chiffrer |\n"); printf(" |1. Dechiffrer |\n"); printf(" --------------------------------------------------\n"); printf("\n"); printf("Ton choix :"); scanf("%d",&choice); while(getchar()!='\n'); // clear the buffer if(choice==0) { printf("string which is going to be xor'd: "); fgets(buffer,MAXBUFFERSIZE,stdin); printf("\r\n %s XOR\n (?)\n: ",buffer); scanf("%d",&B); encrypt(buffer,B); free(buffer); buffer=NULL; } else if (choice==1) { printf("string to be unxor'd: "); fgets(buffer,150,stdin); printf("\r\n (?)\n XOR\n %s :",buffer); scanf("%d",&B); decrypt(buffer,B); free(buffer); buffer=NULL; } else printf("Choose 0 or 1 ."); free(buffer); buffer=NULL; return 0; } encrypt(char *C,int B) { int i; for(i=0;i<C[i];i++) { if (strcmp(&C[i],"\0")!= 0) { C[i]^=B; } } printf("C XOR B(\"%d\") = A (\"%s\")",B,C); } decrypt(char *C, int B) { int i; for(i=0;i<C[i];i++) { if (strcmp(&C[i],"\0")!= 0) { C[i]^=B; } } printf("A XOR B(\"%d\") = C (\"%s\")",B,C); }
Commentaire