Crypt-decrypt avec xor

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 173 fois - Téléchargée 34 fois

Contenu du snippet

ba le titre est assez clair...

Source / Exemple :


#include <iostream.h>
#include <stdio.h>
#include <conio.c>

/*############################################################################*/

int crypt()
{
char mot[999];
char crypt[999];
int cle;

    clrscr();

     cout << "mot a crypter : ";
     gets(mot);
     cout << "cle numerique : ";
     cin >> cle;

     for(int n=0;n<strlen(mot);n++)
     {
     crypt[n] = mot[n] ^ cle;
     }

     cout << crypt;
}

/*############################################################################*/

int decrypt()
{
char motc[999];
char decrypt[999];
int cle2;

    clrscr();

     cout << "mot : ";
     gets(motc);
     cout << "cle numerique : ";
     cin >> cle2;

     for(int n=0;n<strlen(motc);n++)
     {
     decrypt[n] = motc[n] ^ cle2;
     }

     cout << decrypt;
}

/*############################################################################*/

int main()
{
int choix;

    cout << "1.Crypter\n2.Decrypter\n";
    cin >> choix;

    switch(choix)
    {
     case 1:
     crypt();
     break;

     case 2:
     decrypt();
     break;

     default:
     exit(0);
     break;
    }

getchar();
}

Conclusion :


Sou DevC++

A voir également

Ajouter un commentaire

Commentaires

Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1
Euh je vois pas pk tu met: char char mot[999];
le maximum de lettre d'un char étant de 256 ça ne te sert strictement à rien!
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
Laisse à l'user le soin de choisir la clé
Messages postés
3
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
16 avril 2003

C juste pour qu'il est une valeur, on peut mettre ce que l'on veut.
ça changera l'apparence du contenu du fichier crypté.
!!!!Le code que j'ai mis est faux :
il faut mettre des 1 à la place des 2 au niveau du while et du fwrite !!!!
désolé
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
pourquoi CLE est égal à 57 ? :-))
Messages postés
3
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
16 avril 2003

Pour le cryptage XOR, je crois que cela suffit non ?:

/* cryptage XOR */

#include <stdio.h>
#define CLE 57

void main(int argc, char**argv)
{
FILE *In,*Out;
unsigned char byte;


if (argc != 3)
{
printf("
Usage : %s <fichier source> <fichier destination>
",argv[0]);
exit(0);
}


if ((In = fopen(argv[1], "rb+"))== NULL)
{
printf("Fichier %s introuvable!
",argv[1]);
exit(-1);
}

if ((Out = fopen(argv[2], "wb+" ))== NULL)
{
printf("Fichier %s imppossible à créer
",argv[2]);
fclose(In);
exit(-1);
}

while (fread(&byte,2,2,In))
{
byte ^=CLE;
fwrite(&byte,2,2,Out);
}
fclose(In);
fclose(Out);
}
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.