Code on time pad en C ou java
Fermé
oussa_7
Messages postés
203
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
1 août 2017
-
17 mars 2011 à 18:09
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 17 mars 2011 à 20:36
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 17 mars 2011 à 20:36
A voir également:
- Code on time pad en C ou java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Pad desactivé - Guide
- Code asci - Guide
- Java apk - Télécharger - Langages
1 réponse
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
Modifié par Hxyp le 17/03/2011 à 20:38
Modifié par Hxyp le 17/03/2011 à 20:38
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; }