Chiffrement de fichiers en C [Résolu/Fermé]

Messages postés
173
Date d'inscription
dimanche 28 juin 2015
Statut
Membre
Dernière intervention
7 décembre 2016
- - Dernière réponse : EchoIsON
Messages postés
173
Date d'inscription
dimanche 28 juin 2015
Statut
Membre
Dernière intervention
7 décembre 2016
- 18 juin 2016 à 00:57
Bonsoir,

J'ai codé un petit programme en C pour chiffrer / déchiffrer le contenu d'un fichier.
Cependant il se passe quelque chose de bizarre... Mon programme fonctionne parfaitement avec de gros fichiers (par exemple en écrivant plus de 20 lignes dans un fichier texte), mais si je met "test" dans un fichier texte et que j'essaie de le chiffrer, alors le fichier est effacé (le fichier texte se retrouve vide).

Voici mon code :
void crypter(char * file)
{
        int carac = -1;
        FILE * In = fopen(file, "rb");
        FILE * buffer = fopen("nouveaufichier", "wb");

        while((carac = fgetc(In)) != EOF)
        {
                fputc(carac+1, buffer);  /* Je n'ai pas encore défini la clé, pour l'instant j'ajoute juste 1 pour tester... */
        }
        fclose(In);
}

void decrypter(char * file)
{
        int carac = -1;
        FILE * In2 = fopen(file, "rb");
        FILE * buffer = fopen("fichieroriginal", "wb");

        while((carac = fgetc(In2)) != EOF)
        {
                fputc(carac-1, buffer);
        }
        fclose(In2);
}


Et dans le main j'appelle juste ces deux fonctions l'une après l'autre dans un répértoire donné.

Merci.
Afficher la suite 

1 réponse

Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1615
0
Merci
Tu as oublié de fermer ton fichier buffer.
EchoIsON
Messages postés
173
Date d'inscription
dimanche 28 juin 2015
Statut
Membre
Dernière intervention
7 décembre 2016
-
C'est vrai, je venais juste de trouver la solution.
Merci !

Résolu.