Я пытаюсь зашифровать, а затем расшифровать бинарный файл в Perl безуспешно, дешифрованный файл всегда отличается от оригинала. Я пробовал и Blowfish, и AES (Rijandael), вот короткий пример:
#!/usr/bin/perl
use Crypt::CBC;
use autodie;
my $cipher = Crypt::CBC->new(
-key => 'my secret key',
-cipher => 'Blowfish',
-header => 'none',
-iv => 'dupajasi'
);
$cipher->start('encrypting');
my $sourcefile = "fs9419105v001s.zip";
{
open(my $OUTF, '>', "$sourcefile.perl.crypt");
open(my $F, '<', $sourcefile);
print "[?] Encrypting ... \n";
while (read($F, $buffer, 1024)) {
print $OUTF $cipher->crypt($buffer);
}
print {$OUTF} $cipher->finish;
close($OUTF);
}
print "[?] Decrypting.,..... \n";
$cipher2 = Crypt::CBC->new(
-key => 'my secret key',
-cipher => 'Blowfish',
-header => 'none',
-iv => 'dupajasi'
);
{
open(my $OUTF, '>', "$sourcefile.perl.decrypt");
open(my $F, '<', "$sourcefile.perl.crypt");
while (read($F, $buffer, 1024)) {
print {$OUTF} $cipher2->decrypt($buffer);
}
print {$OUTF} $cipher2->finish;
close($OUTF);
}
Может ли кто-нибудь помочь мне выяснить, что не так?