gpt4 book ai didi

perl - 使用河豚或 AES 在 Perl 中加密/解密二进制文件?

转载 作者:行者123 更新时间:2023-12-04 06:40:21 73 4
gpt4 key购买 nike

我试图在 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);
}

有人可以帮我找出问题所在吗?

最佳答案

我可以确认这一点。我发现了一个提示:差异恰好发生在 102410/40016 边界处。

> diff -u fs9419105v001s.zip.hex fs9419105v001s.zip.perl.decrypt.hex
--- fs9419105v001s.zip.hex
+++ fs9419105v001s.zip.perl.decrypt.hex
@@ -62,7 +62,7 @@
03d0 5d d9 f2 f6 43 bb 3d 9d 92 aa 89 ca 75 dc 0e 51 ]...C.=. ....u..Q
03e0 55 b2 1a e8 65 d5 29 ac ca d9 a4 f8 1a cc 67 8b U...e.). ......g.
03f0 f9 1b 65 be bc 19 bf 51 e6 9f de 28 ef db db ff ..e....Q ...(....
-0400 85 38 78 09 a7 62 9f 9d 08 db fc cb 13 90 b9 84 .8x..b.. ........
+0400 c6 a0 8b 75 f4 17 6b 64 08 db fc cb 13 90 b9 84 ...u..kd ........
0410 f4 a8 30 d2 1d 19 52 f7 8e 84 09 a8 59 f3 4e 1e ..0...R. ....Y.N.
0420 3c 30 ca 6e 5b dc bb f3 48 fa 5d 3c b1 e0 64 07 <0.n[... H.]<..d.
0430 61 98 9e a1 57 9a 69 d6 35 a7 95 5b 0d d7 31 c4 a...W.i. 5..[..1.

这与其说是回答,不如说是评论,但不幸的是,评论框不适合此回复。

关于perl - 使用河豚或 AES 在 Perl 中加密/解密二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336033/

73 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com