koija Professeur
Nombre de messages : 81 Age : 28 Réputation : 11 Date d'inscription : 13/02/2011
| Sujet: Cryptographie Lun 23 Avr - 10:28 | |
| C'est encore moi ! Bon, dans cet exercice, je vous propose quelque chose: créer une fonction qui crypte une chaine de caractère et une autre qui servira à décrypter le résultat obtenu: à revenir au résultat de départ. Si vous voulez, vous pouvez faire avec juste un int, ça peut être aussi pas mal. Le but au final et de comparer nos œuvres. | |
|
Invité Invité
| Sujet: Re: Cryptographie Lun 23 Avr - 17:56 | |
| Voici mon code crypt.c - Code:
-
void crypter(char result[], char chaine[], int decalage) { int i=0; while(chaine[i] != '\0') { result[i] = ((int) chaine[i] + decalage); i++; } }
void decrypter(char result[], char chaine[], int decalage) { int i=0; while(result[i] != '\0') { chaine[i] = ((int) result[i] - decalage); i++; } }
int main(void) { char test[] = "test"; char *res = malloc(MAX * sizeof(char)); crypter(res, test, 2); printf("%s\n", res); decrypter(res, test, 2); printf("%s\n", test); return EXIT_SUCCESS; } crypt.h - Code:
-
void crypter(char result[], char chaine[], int decalage); void decrypter(char result[], char chaine[], int decalage); |
|
koija Professeur
Nombre de messages : 81 Age : 28 Réputation : 11 Date d'inscription : 13/02/2011
| Sujet: Re: Cryptographie Lun 23 Avr - 20:50 | |
| Bien ! Je proposerai mes solutions un peu plus tard ! Si tu veux, si tu détestes les répétitions, j'ai une petite proposition à te faire ! Pour crypter on ajoute la valeur de décalage et pour décrypter on l'enlève. Donc on peut dire qu'on fait l'opération inverse entre le cryptage et le décryptage. Ducoup, décrypter revient à utiliser la fonction crypter en prenant la valeur inverse de decalage. Ducoup, on peut arriver à quelque chose comme ça : - Code:
-
void decrypter(char result[], char chaine[], int decalage) { crypter(result, chaine, 0 - decalage); }
Voilà ! En tous cas, bien joué pour le code ! | |
|
Invité Invité
| Sujet: Re: Cryptographie Lun 23 Avr - 21:10 | |
| Merci en effet c'est plus élégant, je l'ai fais en 10 minutes top chrono, j'aurais dû réfléchir plus, ça m'apprendra! |
|
koija Professeur
Nombre de messages : 81 Age : 28 Réputation : 11 Date d'inscription : 13/02/2011
| Sujet: Re: Cryptographie Lun 23 Avr - 21:15 | |
| Booh ! Ton code vaut mieux que le mieux en matière de temps d'exécution ! Mais cette différence est tellement petite de nos jours qu'on s'en fiche du temps d'exécution (sauf dans les écoles où les profs sont un peu trop exigeant ^^'). Bref, aujourd'hui, le copier/coller existe alors ta fonction est parfaite ! | |
|
koija Professeur
Nombre de messages : 81 Age : 28 Réputation : 11 Date d'inscription : 13/02/2011
| Sujet: Re: Cryptographie Mer 25 Avr - 21:19 | |
| Bon, je propose mon code pour crypter un int. J'ai fais la fonction pour transvaser ce code pour un char mais le problème c'est que un char prend qu'un octet en mémoire et c'est trop peu pour les nombres qu'on atteint. Voilà à quoi mes fonction ressemble ! - Code:
-
int crypterInt(int nombre) { return (nombre % 2 == 0) ? nombre * 2 : nombre * 3 ; }
int decrypterInt(int nombre) { return (nombre % 2 == 0) ? nombre / 2 : nombre / 3 ; }
| |
|