Les langages de programmation

Venez apprendre les langages de programmation à votre rythme
 
AccueilGalerieCalendrierFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Cryptographie

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
koija
Professeur
Professeur


Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: 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.

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Invité
Invité



MessageSujet: 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);

Revenir en haut Aller en bas
koija
Professeur
Professeur


Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: Re: Cryptographie   Lun 23 Avr - 20:50

Bien ! Je proposerai mes solutions un peu plus tard Smile ! Si tu veux, si tu détestes les répétitions, j'ai une petite proposition à te faire Smile !
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 Very Happy !

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Invité
Invité



MessageSujet: 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!

Smile
Revenir en haut Aller en bas
koija
Professeur
Professeur


Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: Re: Cryptographie   Lun 23 Avr - 21:15

Booh ! Ton code vaut mieux que le mieux en matière de temps d'exécution Wink ! 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 Very Happy !

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
koija
Professeur
Professeur


Nombre de messages : 81
Age : 21
Réputation : 11
Date d'inscription : 13/02/2011

MessageSujet: 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 Smile !

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 ;
}

_________________


All humans will, without exception, eventually die.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://koija.no-ip.org
Contenu sponsorisé




MessageSujet: Re: Cryptographie   

Revenir en haut Aller en bas
 
Cryptographie
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Challenges de cryptographie
» Besoin d'aide pour la Cryptographie en RSA svp

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les langages de programmation :: Exercices de programmation :: Exercices en C-
Sauter vers: