Linux perl加密脚本思想
大家好,我正在制作一个perl脚本来加密和解密文本,我刚刚开始,我有:Linux perl加密脚本思想,linux,perl,encryption,encryption-symmetric,Linux,Perl,Encryption,Encryption Symmetric,大家好,我正在制作一个perl脚本来加密和解密文本,我刚刚开始,我有: #!/usr/bin/perl use Crypt::IDEA; my $key = pack("H32", "0123456789ABCDEF0123456789ABCDEF"); my $cipher = new IDEA $key; my $palabra= "plaintex"; my $ciphertext = $cipher->encrypt($palabra); # NB - 8 bytes pr
#!/usr/bin/perl
use Crypt::IDEA;
my $key = pack("H32", "0123456789ABCDEF0123456789ABCDEF");
my $cipher = new IDEA $key;
my $palabra= "plaintex";
my $ciphertext = $cipher->encrypt($palabra); # NB - 8 bytes
print unpack("H16", $ciphertext), "\n";
my $plaintext = $cipher->decrypt($ciphertext);
print $plaintext , "\n";
问题是要加密的文本长度必须为8字节。为什么?如果我把“明文”改为“明文”,我就会出错
input must be 8 bytes long at /usr/lib/perl5/site_perl/Crypt/IDEA.pm line 62.
用Crypt::CBC包装Crypt::IDEA——它将允许使用不对齐的数据长度。看
这是因为IDEA和许多其他加密算法都是块加密算法。这意味着它们使用指定大小的数据块进行操作,因此必须准备加密的数据(用零或其他填充)用Crypt::CBC包裹Crypt::IDEA-它将允许使用不对齐的数据长度。看 这是因为IDEA和许多其他加密算法都是块加密算法。这意味着它们使用指定大小的数据块进行操作,因此必须准备好加密的数据(用零或其他填充)试试看 试一试
错误声明它必须是8字节,而不是8位,正如您在问题中所断言的那样。这两者之间有很大的区别。仅供参考。请以现代方式创建对象:Crypt::IDEA->new($key);错误声明它必须是8字节,而不是8位,正如您在问题中所断言的那样。这两者之间有很大的区别。仅供参考。请以现代方式创建对象:Crypt::IDEA->new($key);
#!/usr/bin/perl --
use strict; use warnings;
use Crypt::CBCeasy qw/ IDEA /;
my $key = 'shabba';
my $text = "plaintex"; ## not a file, not -f -r $text
my $crypted = IDEA::encipher( $key, $text );
my $detext = IDEA::decipher( $key, $crypted );
print join "\n", $key, $text, unpack( 'H*', $crypted ), $detext, '';
__END__
shabba
plaintex
53616c7465645f5fb5ec01275eb466c4b9b69f3edb7568b42c1713416d33b7aa
plaintex