Cryptage xor

Contenu du snippet

ce code crypte et decrypte une image en format brut *.RAW en modifant chaque pixel par l'operateur de bit XOR

Source / Exemple :


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

 int h,l;                                      // hauteur et largeur de l'image

/*************************************************************************************************/
/*                 fonction lire_image() qui lit le fichier image                                */
/*                                                                                               */
/*************************************************************************************************/

unsigned char *lire_image(void)
{

 FILE*fp;

 char   nom[80];                   //nom du fichier a creer
 unsigned char *vec ;             //pointeur sur le fichier dans la memoire retourner par la fonction

 printf("donner la largeur et la hauteur du fichier\n");    //saisie de la taille dun fichier
 scanf("%d%d",&l,&h);

 printf("donner le nom du fichier a ouvrire\n");          //saisie du nom et emplacement du fichier a creer
 scanf("%s",&nom);

 fp=fopen(nom,"rb");                                   //ouverture du fichier en mode rb

if(!fp)
{ printf("\aimpossible d'ouvrire le fichier \n");
     exit(0);
	}

vec=(unsigned char *)malloc(l*h);                       //allocation de l*h bloc

 fread(vec,sizeof(unsigned char),l*h,fp);
 fclose(fp);                                          //fermeture du fichier

     return vec;                                    // pointeur retourner
	}

/*************************************************************************************************/
/*                 fonction ecrire_image() qui ecrit le nouveau fichier crypter                  */
/*                                                                                               */
/*************************************************************************************************/

void ecrire_image(unsigned char *imageD)
{char nom [80];
 int a=0,b=0;
FILE *fp;

printf("nom et chemin de l'image destination\n");
 scanf("%s",&nom);

printf("largeur et hauteur\n");
 scanf("%d%d",&a,&b);

 fp=fopen(nom,"wb");
 fwrite(imageD,sizeof(unsigned char),h*l,fp);
 fclose(fp);
}

void main()
{
	unsigned char *image,*imageD;
	unsigned char cle=15;
	int i;
 
	initscreen();
	
	image=lire_image();
	printf("IMAGE LODER DANS LA MEMOIRE\n");

	for(i=0;i<l*h;i++)
	{image[i]=image[i]^cle; }       /*XOR*/
 
	
	 printf("image crypter\n");

  imageD=image;
	 ecrire_image(imageD);
	 printf("operation terminée\n");
	 
	 
	 
	 free(image);
	 getch();

}

Conclusion :


svp criticquezzzzzzzzzz mon code et reponder moi sur le forum

A voir également

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.

Du même auteur (cs_gloom)