Cryptage de message par crc8 et mot de passe en c

Soyez le premier à donner votre avis sur cette source.

Vue 9 032 fois - Téléchargée 242 fois

Description

Prog de cryptage de message par CRC8, la prise en charge de fchier n'est pas faite, mais bon ce n'est pas dur à modifier.

Source / Exemple :


/***************************************************
	
	Cryptage de données grâce à CRC8

	Par Thomas Poulichet

	Créer le 12/02/2003 à 23:03

                                                                                                        • /
#include<stdio.h> #include<string.h> #include<stdlib.h> int CRC(int); void main (void) { char *password={""}, *crypt={""}; char * message={""}; int masqueprecedent; int ValeurCRC=0; int longueurmessage,longueurpassword,i=0,k=0; puts("Entrer votre message"); gets(message); puts("Entrer le mot de passe !"); gets (password); //Sasie mot de passe longueurmessage=strlen(message); //Longueur de chaîne longueurpassword=strlen(password); //Longueur de chaîne masqueprecedent=0; for (i=0;i<longueurmessage;i++) { ValeurCRC=CRC(masqueprecedent); //Récupére la valeur de CRC8 masqueprecedent = ValeurCRC ^ *(password+k); //Cryptage par Ou Exclusif
  • (crypt+i) = masqueprecedent ^ *(message+i);
k=k+1; if (k>=longueurpassword) { k=0; } } for (i=0;i<longueurmessage;i++) { printf("%X\t",*(crypt+i)); } printf("\n"); } /*Distribue la valeur du masque*/ int CRC(int valeurMasqueprecedent) { int ValeurCRC[16][16]={0x00,0x07,0x0E,0x09,0x1C,0x1B,0x12,0x15,0x38,0x3F,0x36,0x31,0x24,0x23,0x2A,0x2D, 0x70,0x77,0x7E,0x79,0x6C,0x6B,0x62,0x65,0x48,0x4F,0x46,0x41,0x54,0x53,0x5A,0x5D, 0xE0,0xE7,0xEE,0xE9,0xFC,0xFB,0xF2,0xF5,0xD8,0xDF,0xD6,0xD1,0xC4,0xC3,0xCA,0xCB, 0x90,0x97,0x9E,0x99,0x8C,0x8B,0x82,0x85,0xA8,0xAF,0xA6,0xA1,0xB4,0xB3,0xBA,0xBD, 0xC7,0xC0,0xC9,0xCE,0xDB,0xDC,0xD5,0xD2,0xFF,0xF8,0xF1,0xF6,0xE3,0xE4,0xED,0xEA, 0xB7,0xB0,0xB9,0xBE,0xAB,0xAC,0xA5,0xA2,0x8F,0x88,0x81,0x86,0x93,0x94,0x9D,0x9A, 0x27,0x20,0x29,0x2E,0x3B,0x3C,0x35,0x32,0x1F,0x18,0x11,0x16,0x03,0x04,0x0D,0x0A, 0x57,0x50,0x59,0x5E,0x4B,0x4C,0x45,0x42,0x6F,0x68,0x61,0x66,0x73,0x74,0x7D,0x7A, 0x89,0x8E,0x87,0x80,0x95,0x92,0x9B,0x9C,0xB1,0xB6,0xBF,0xB8,0xAD,0xAA,0xA3,0xA4, 0xF9,0xFE,0xF7,0xF0,0xE5,0xE2,0xEB,0xEC,0xC1,0xC6,0xCF,0xC8,0xDD,0xDA,0xD3,0xD4, 0x69,0x6E,0x67,0x60,0x75,0x72,0x7B,0x7C,0x51,0x56,0x5F,0x58,0x4D,0x4A,0x43,0x44, 0x19,0x1E,0x17,0x10,0x05,0x02,0x0B,0x0C,0x21,0x26,0x2F,0x28,0x3D,0x3A,0x33,0x34, 0x4E,0x49,0x40,0x47,0x52,0x55,0x5C,0x5B,0x76,0x71,0x78,0x7F,0x6A,0x6D,0x64,0x63, 0x3E,0x39,0x30,0x37,0x22,0x25,0x2C,0x2B,0x06,0x01,0x08,0x0F,0x1A,0x1D,0x14,0x13, 0xAE,0xA9,0xA0,0xA7,0xB2,0xB5,0xBC,0xBB,0x96,0x91,0x98,0x9F,0x8A,0x8D,0x84,0x83, 0xDE,0xD9,0xD0,0xD7,0xC2,0xC5,0xCC,0xCB,0xE6,0xE1,0xE8,0xEF,0xFA,0xFD,0xF4,0xF3}; int ligne=0,colonne=0; int ReturnCRC=0; if (valeurMasqueprecedent==0) { ReturnCRC=ValeurCRC[0][0]; } else { ligne=(valeurMasqueprecedent/0x10); //Calcul de la ligne colonne=(valeurMasqueprecedent-(0x10*ligne)); //Calcul de la colonne ReturnCRC=ValeurCRC[ligne][colonne]; //Donne la valeur du tableau CRC8 } return(ReturnCRC); //Retourne cette valeur au Main }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

bonjour!!!
Ce petit programme fonctionne tres tres bien mais il faut rajouter 3 lignes d'allocation de pointeur:(à rajouter ligne 25)
- message=(char*)alloca(100*sizeof(char));
- password=(char*)alloca(100*sizeof(char));
- crypt=(char*)alloca(100*sizeof(char));
Ne pas oublier de rajouter la bibliothéque: malloc.h
Messages postés
4
Date d'inscription
vendredi 24 octobre 2003
Statut
Membre
Dernière intervention
25 mai 2004

ca fait une erreur apres gets du 1er.
int ou char pareil...
d'ou ca vient?

ca ecrit au mauvais endroit d'apres le debug
Messages postés
4
Date d'inscription
mercredi 12 mars 2003
Statut
Membre
Dernière intervention
20 septembre 2004

EXPLIQUER MOI LA METHODE CRC8

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.