perl對稱加密解密

概述

常見的對稱加密有DES,3DES,AES, RC2, RC4, RC5和Blowfish等,這些在Perl裏面都有相應的模塊實現。
列舉一些如下:
算法 模塊 rpm包 cpan
DES Crypt::DES    perl-Crypt-DES http://search.cpan.org/~dparis/Crypt-DES-2.07/DES.pm
3DES Crypt::DES_EDE3 perl-Crypt-DES_EDE3 http://search.cpan.org/~btrott/Crypt-DES_EDE3-0.01/lib/Crypt/DES_EDE3.pm
Blowfish Crypt::Blowfish perl-Crypt-Blowfish http://search.cpan.org/~dparis/Crypt-Blowfish-2.14/Blowfish.pm
RC4 Crypt::RC4 perl-Crypt-RC4 http://search.cpan.org/~sifukurt/Crypt-RC4-2.02/RC4.pm
RC4 Crypt::RC4::XS perl-Crypt-RC4-XS http://search.cpan.org/~oyama/Crypt-RC4-XS-0.02/lib/Crypt/RC4/XS.pm
AES Crypt::OpenSSL::AES perl-Crypt-OpenSSL-AES http://search.cpan.org/~ttar/Crypt-OpenSSL-AES-0.02/lib/Crypt/OpenSSL/AES.pm

這些基本能滿足加密解密需要,使用方法大同小異,以RC4舉例。

Perl源碼

在centos上測試,首先需要安裝支持包perl-Crypt-RC4-XS。

yum install perl-Crypt-RC4-XS

#!/usr/bin/perl

use Crypt::RC4::XS;

sub rc4_encrypt_hex ($$) {
    my ($key, $data) = ($_[0], $_[1]);
    return join('',unpack('H*',RC4($key, $data)));
}

sub rc4_decrypt_hex ($$) {
    my ($key, $data) = ($_[0], $_[1]);
    return RC4($key, pack('H*',$data));
}

my $passphrase = 'Happy#12';
my $plaintest = "Hello,World";
my $encrypted = rc4_encrypt_hex($passphrase, $plaintest);
my $decrypted = rc4_decrypt_hex($passphrase, $encrypted);

print "plain test: ", $plaintest, "\nafter encrypt: ",$encrypted,"\nafter decrypt: ",$decrypted,"\n"

輸出結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章