在perl中Crypt::Blowfish加解密的例子:
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #!/usr/bin/perl use strict; use warnings; use Crypt::Blowfish; my $key = '123456'; my $content = 'i love you selina!'; if (length($key) % 8 != 0) { $key .= "\000"x(8 - length($key) % 8); } my $ci = new Crypt::Blowfish $key; ### encrypt: my $plain = $content; my $encryp; while(my $p = substr($plain, 0, 8)) { my $len = length($p); if ($len % 8 != 0) { $p .= "\000"x( 8 - $len % 8); } $encryp .= $ci->encrypt($p); if (length($plain) > 8) { $plain = substr($plain, 8) } else { last; } } ### decrypt: my $decryp; $plain = $encryp; while(my $p = substr($plain, 0, 8)) { my $len = length($p); if ($len % 8 != 0) { $p .= "\000"x( 8 - $len % 8); } $decryp .= $ci->decrypt($p); if (length($plain) > 8) { $plain = substr($plain, 8) } else { last; } } print "encrypt: ", unpack("H*", $encryp), "\n"; print "decrypt: ", unpack("H*", $decryp), "\n"; print "decrypt: ($decryp)\n"; |
输出如下:
encrypt: f387ab6368b07639ed9adf97b2527fac6af3c55dd58bdce2 decrypt: 69206c6f766520796f752073656c696e6121000000000000 decrypt: (i love you selina!)
Leave a Reply