[vc++] cryptage xor

Soyez le premier à donner votre avis sur cette source.

Vue 6 623 fois - Téléchargée 237 fois

Description

Attention changement total du code depuis le 7/12 <BR>Idem pour le tutorial refait lui aussi<BR>Chose promise chose due !<BR>Vous trouverez l'explication théorique dans le Zip<BR>Enjoy it

Source / Exemple :


// Cryptage de fichier par méthode 'XOR' by GoldenEye

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc,char **argv) // 3 arguments
{
	char cle[100],c;
	FILE *crypte1,*crypte2;
	int i=0;
	if (argc!=3)
		printf("Erreur,la syntaxe est: %s source destination ",argv[0]);
	else if ((crypte1=fopen(argv[1],"rb"))==NULL||(crypte2=fopen(argv[2],"wb"))==NULL)
		printf("Probleme a l'ouverture ou a la creation");
	else
	{
		printf("Cle: ");
		scanf("%s",cle);
		while(fread(&c,sizeof(char),1,crypte1))
		{
			putc(c^cle[i%strlen(cle)],crypte2);
			i++;
		}
		fclose(crypte1);
		fclose(crypte2);
		printf("Operation terminee avec succes !");
	}
	return EXIT_SUCCESS;
}

Conclusion :


C'est très condensé. Si vous avez des questions n'hésitez pas !
Respectez la syntaxe d'appel( les arguments de main )
Marche pour tous les compilateurs (code ANSI)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
42
Du xor... très interessant, mais c'est un peu démodé... On utilise plutot son arrière fils, DES ou AES qui ont des Xor, mais un peu plus performant que la...
Ton programme est très bien, mais ne fournit pas de réelle sécuritée.
Simple question : on utilise DES plus souvent que RSA car DES est très rapide, en DES, les clefs font 64 bits... On est vraiment a l'abri de l'ataque par force brute ?
Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

Fais attention qu'une erreur de segmentation ne survienne pas si un utilisateur un peu "con" ou sournois s'amuse à taper une clé de plus de 100 caractères !! Ce genre d'utilisateur sournois est rare mais un programme est censé palier à tous les problèmes possibles pouvant survenir lors de l'intervention de l'utilisateur.
Donc UNE solution possible serait de faire une boucle recupérant a chaque tour un caractere comme ceci :
int i=0;
while(cle[i] !='
' && i<100)
{
scanf("%c",&cle[i]);
}

mais si tu as une meilleure solution je suis ouvert a toute proposition...
Messages postés
78
Date d'inscription
lundi 14 avril 2003
Statut
Membre
Dernière intervention
23 avril 2010

Fais attention qu'une erreur de segmentation ne survienne pas si un utilisateur un peu "con" ou sournois s'amuse à taper une clé de plus de 100 caractères !! Ce genre d'utilisateur sournois est rare mais un programme est censé palier à tous les problèmes possibles pouvant survenir lors de l'intervention de l'utilisateur.
Donc UNE solution possible serait de faire une boucle recupérant a chaque tour un caractere comme ceci :
int i=0;
while(cle[i] !='
' && i<100)
{
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
3
C'est noté "Maître" Jo :-)
Mon prochain truc (les listes chaînées en C + tutorial) suivront tes sages conseils o cher Gandalf du C/C++...
@+
Messages postés
138
Date d'inscription
jeudi 24 août 2000
Statut
Membre
Dernière intervention
6 avril 2002

GoldenEye, plutot que de t'embeter a mettre et enlever les caractere speciaux, et par la meme "embeter" les developpeurs sous gcc (tu voi de qui je veut parler lol), pourquoi tu ne mettra pas du tout de caractere accentue ni caractere speciaux !

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.