Bonjour ,
je souhaiterai réaliser un répertoire téléphonique à accès sécurisé(cryptage des données par mot de passe)et recherche rapide de coordonnées téléphonique à partir de la saisie d'un nom en langace c.
en première partie, je dois créer un programme "genekey" qui permet de creer une clé de cryptage qui sera stoqué dans un fichier secret.key après je dois ecrire un programme nommé "encode" qui me permet de générer à partir d'un fichier designé par l'utilisateur, un fichier de donnée cryptées a partir de la clé contenue dans secret.key.
et pour finir, il faut un autre programme "decode" qui permet de recouvrer un fichier de donnée en texte clair,à partir d'un fichier crypté désigné par l'utilisateur et de la clé contenue dans secret.key
*secret.key doit etre un ficheir binaire.
voila ce que j'ai fait pour le moment mais je n'avance pas beaucoup vu que je suis en DUT GEII et la programation n'est pas vraiment ma spécialité.
Code C/C++ :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int main(int argc,char *argv[])
{
FILE *file;
int key ;
int tableau;
int A;
char *pkey;
int i;
if(argc==1)
{
printf("pas de phrase de passe\n");
exit(0);
}
else
{
A=strlen(argv[1]);
printf("longueur=%d\n",A);
if((pkey=(char*)malloc(sizeof(strlen(argv[1])+1)))==NULL)
{
printf("erreur de mémoire\n");
exit(0);
}
else
{
srand (time (NULL));
for(i=0;i<A+1;i++)
{
pkey[i]=33+rand()%93;
printf("%c ",pkey[i]);
}
printf("\n");
}
return (EXIT_SUCCESS);
}
}
char* encrypt(char *s, char *c)
{
int len=strlen(s);
int i;
int j=0;
for(i=0;i<strlen(s);i++)
{
s[i]=c[j++]^s[i];
if(++j==strlen(c))
j=0; //si on a déjà utilisé tous les caractères de la clé, revenir au premier caractère
}
return s;
}
int main(void)
{
char* crypted=pkey;
char* pkey="1Test";
printf("La chaine a crypter : %s\n",crypted);
crypted=encrypt(crypted,pkey);
printf("La chaine cryptee : %s\n",crypted);
}
file = fopen("secret.key", "w") ;
fwrite(tableau, sizeof(key), 1, file) ;
fclose(file);
return(0);
}
merci d'avance