Code on time pad en C ou java
oussa_7
Messages postés
203
Date d'inscription
Statut
Membre
Dernière intervention
-
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Bonsoir
svp .... je veux un programme en C ou java qui permet de crypter et decrypter le messsage en utilisent One Time PAD
metrci d'avance
svp .... je veux un programme en C ou java qui permet de crypter et decrypter le messsage en utilisent One Time PAD
metrci d'avance
A voir également:
- Code on time pad en C ou java
- Popcorn time - Télécharger - TV & Vidéo
- Code ascii - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Pad ordinateur bloqué - Guide
1 réponse
Bonjour,
Tout est expliqué ici : https://fr.wikipedia.org/wiki/Masque_jetable et en fait c'est très simple.
La clé doit être au moins aussi longue que le message et elle doit être aléatoire, dans l'exemple de code ici la clé fait la même taille que le message et j'ai séparé la génération de la clé aléatoire dans une fonction mais on peut la générer en même temps qu'on encrypte le message ça doit faire gagner du temps.
Comme on utilise un xor pour encrypter pas besoin de faire une fonction de décryptage la même fonction fera la même chose :
Tout est expliqué ici : https://fr.wikipedia.org/wiki/Masque_jetable et en fait c'est très simple.
La clé doit être au moins aussi longue que le message et elle doit être aléatoire, dans l'exemple de code ici la clé fait la même taille que le message et j'ai séparé la génération de la clé aléatoire dans une fonction mais on peut la générer en même temps qu'on encrypte le message ça doit faire gagner du temps.
Comme on utilise un xor pour encrypter pas besoin de faire une fonction de décryptage la même fonction fera la même chose :
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> char *onetimepad_cle(char *cle,int taille) { int i; srand(time(NULL)); for(i=0;i<taille;i++) cle[i]=(rand()%256); return cle; } char *onetimepad_crypt(char *resultat,const char *text,const char *cle,int taille) { int i; for(i=0;i<taille;i++) resultat[i]=text[i]^cle[i]; return resultat; } int main(void) { size_t taille; const char *text; char *cle; char *text_crypte; text="Hello World!"; taille=strlen(text); cle=malloc(sizeof(char)*taille); text_crypte=malloc(sizeof(char)*taille); printf("text en clair : %s\n",text); onetimepad_cle(cle,taille); printf("cle : %s\n",cle); onetimepad_crypt(text_crypte,text,cle,taille); printf("text crypte : %s\n",text_crypte); onetimepad_crypt(text_crypte,text_crypte,cle,taille); printf("text decrypte : %s\n",text_crypte); free(text_crypte); free(cle); return 0; }