Bonjour,

Je rencontre un problème en utilisant le module de chiffrage Crypt::CBC avec un exemple simple que j'ai pris dans le livre "Les meilleurs bibliothèques pour Perl", (Editions H&K), pages 99-100.

J'ai seulement écrit les codes pour le chiffrage et le déchiffrage dans 2 scripts séparés.

Le principe est le suivant, on crypte chaque ligne du fichier clair.txt, que l'on écrit dans le fichier crypt.txt, avec le premier script.

Puis, avec le second script on fait l'opération inverse, en écrivant les données décryptées dans le nouveau fichier clair_2.txt, pour comparer.

Lors du décryptage on a l'erreur suivante :

"Ciphertext does not begin with a valid header for 'salt' header mode at decrypte.pl line 13"

Quelqu'un a-t-il une idée sur l'origine de ce problème ? Et la solution ?

Merci.

Code du script crypte.pl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl -w
use strict;
use warnings;
use Crypt::CBC;
 
my $crypt = new Crypt::CBC('passwd');
open CLAIR, "clair.txt" or die $!;
open CRYPT, ">crypt.txt" or die $!;
$crypt->start('encrypting');
while(<CLAIR>) {
    print CRYPT $crypt->crypt($_);
}
 
print CRYPT $crypt->finish();
close CLAIR;
close CRYPT;
Code du script decrypte.pl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl -w
use strict;
use warnings;
use Crypt::CBC;
 
my $crypt = new Crypt::CBC('passwd');
open CRYPT, "crypt.txt" or die $!;
open CLAIR, ">clair_2.txt" or die $!;
$crypt->start('decrypting');
while(<CRYPT>) {
    print CLAIR $crypt->decrypt($_);
}
close CLAIR;
close CRYPT;
Contenu du fichier clair.txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Ceci est un test de chiffrage de fichier avec le module Crypt::CBC.
Ceci est un test de chiffrage de fichier avec le module Crypt::CBC.
Ceci est un test de chiffrage de fichier avec le module Crypt::CBC.
Ceci est un test de chiffrage de fichier avec le module Crypt::CBC.