maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004
-
5 juil. 2004 à 12:28
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004
-
5 juil. 2004 à 14:45
bonjour!
voilà je cherche à retirer un nombre variable (entier) à la valeur ascii d'une lettre récupéré dans le fichier fad et d'écrire la lettre trouvé j dans le fichier fd!
j'ai écrit ce bout de code mais ça ne fonctionne pas (pas d'erreur!)
int j=0;
char sB[2];
HANDLE fad;
HANDLE fd;
ReadFile(fad, sB, 1, &dwRead, 0); //lit le fichier au iéme caractère
sB[1] = 0;
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 13:19
ok j'ai changé ça
malheureusement ça ne fonctionne toujours pas
je te met le code en entier au cas ou
merci encore
//système de décodage du fichier
for (i=0;i>4;i++)
{
if (i>3) i=0;
ReadFile(fad, &sB, 1, &dwRead, 0); //lit le fichier au iéme caractère
sB[1] = 0;
//si détection de la fin du fichier on arrête le décodage!
if (dwRead == 0) break;
else
{
k=atoi(sB); j=k-clehex[i]; WriteFile(fd,&j, 1,&dwWritten, 0); //lit le fichier au iéme caractère
}
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 13:44
excuse
donc le fichier est un fichier texte qui est en fait un fichier pdf crypté (fad) (par addition d'un entier) , ce bout de code permet de le décrypter (par soustration d'un entier) en l'enregistrant dans un fichier (fd)temporaire que l'on ouvrira par la suite.
int clehex[4]; est le tableau d'entier qui est la clef de codage et de décodage en question!
ps: je me suis trompé dans la boucle: for (i=0;i<5;i++)
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 juil. 2004 à 14:01
C'est bien toi qui fait son cryptage ?
Si oui, il faut partir de ton algo de cryptage et faire l'inverse, je ne suis pas certain que ce soit du 'texte'.
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:06
oui mais le programme de cryptage et décryptage utilise des fputc ... et ce que je veux faire c'est le transformer en WriteFile ...
parce que ce que je faisait : fputc(sB-clehex[i],fd);//écriture dans fd
voilà mais en faisant la même chose ça ne fonctionne pas
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:07
oui mais le programme de cryptage et décryptage utilise des fputc ... et ce que je veux faire c'est le transformer en WriteFile ...
parce que ce que je faisait : fputc(sB-clehex[i],fd);//écriture dans fd
voilà mais en faisant la même chose ça ne fonctionne pas
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:08
oui mais le programme de cryptage et décryptage utilise des fputc ... et ce que je veux faire c'est le transformer en WriteFile ...
parce que ce que je faisait : fputc(sB-clehex[i],fd);//écriture dans fd
voilà mais en faisant la même chose ça ne fonctionne pas
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 juil. 2004 à 14:15
Et bien voila un tres bon exercice, commence par refaire le cryptage en win32 en travaillant dans un buffer (pas d'acces disque par octet svp comme avec ton fputc) et tu pourras refaire decryptage en consequence.
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:19
ben oui c'est exactement ce que je fais mais ça marche pas
WriteFile(fd,(sB+clehex[i]), 1,&dwWritten, 0);cette ligne il ne l'apprécie pas du tout il n'écrit que la valeur de clehex[i] dans le fichier crypté.
et je ne sais pas pourquoi parce que quand je demande d'affichier sB il le fait correctement!
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:27
ben oui c'est pour ça que je fais ça:
k=atoi(sB);
j=k-clehex[i];
WriteFile(fd,&j, 1,&dwWritten, 0); //lit le fichier au iéme caractère
et que là ça ne marche pas non plus parce que k=0 quelque soit sB et là j'ai vraiment du mal à comprendre
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:41
oui c'est le cryptage
de toute façon cryptage ou décryptage ça se ressemble puisque c'est le signe de l'addition qui change!
le sB je le récupère du fichier à crypter ( id un fichier pdf ouvert en rb avant)
en fait c'est juste une traduction que je veux effectuer puisque mon programme initial marche mais comme je voudrais introduire que le décryptage dans un programme win32.
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:42
int decryptfichier(FILE *fcry,FILE *fencry)
{
int i,l,clehex[4];
//on appelle la fonction clefhex
clefhex(clehex,"abcdef");
printf("\n Decryptage en cours veuillez patienter... \n");
//système de décodage du fichier
for (i=0;;i++)
{
if (i>3) i=0;
l = fgetc(fcry);//lecture dans fcry
//si détection de la fin du fichier on arrête le codage!
if (l == EOF) break;
else
fputc(l-clehex[i],fencry);//écriture dans fencry
}
//fermeture des deux fichiers
fclose(fcry);
fclose(fencry);
//message de réussite
printf("\n\n Fichier decrypte avec succes \n\n");
maevasa
Messages postés100Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention 3 août 2004 5 juil. 2004 à 14:45
merci de m'avoir aider j'ai trouvé en fait j'ai fait:
ReadFile(fad, &k, 1, &dwRead, 0); //lit le fichier au iéme caractère
sB[1] = 0;
//si détection de la fin du fichier on arrête le décodage!
if (dwRead == 0) break;
else
{
j=k-clehex[i]; WriteFile(fd,&j, 1,&dwWritten, 0); //lit le fichier au iéme caractère
}