【发布时间】:2014-06-19 18:15:48
【问题描述】:
我有如下的日志文件,
NAME ID LOCATION
aa 12 in
bb 13 freak
cc 14 test
我想对“LOCATION”字段进行加密和解密。如何通过使用 Perl 中的任何加密模块来做到这一点?
由于我是 Perl 新手,请帮助我。
【问题讨论】:
标签: perl encryption md5 sha
我有如下的日志文件,
NAME ID LOCATION
aa 12 in
bb 13 freak
cc 14 test
我想对“LOCATION”字段进行加密和解密。如何通过使用 Perl 中的任何加密模块来做到这一点?
由于我是 Perl 新手,请帮助我。
【问题讨论】:
标签: perl encryption md5 sha
一个示例脚本
#!/usr/bin/perl
use strict;
use Crypt::CBC;
unless (scalar @ARGV == 3) {
die "Usage: $0 encrypt|decrypt|en|de \$mysecretkey \$file_to_dencrypt";
}
my $type = shift @ARGV;
my $key = shift @ARGV;
my $file = shift @ARGV;
die "The first ARGV should be one of de, en, encrypt, decrypt" if ($type !~ /^(en|de)(crypt)?$/);
die "the file $file is not existence" unless (-f $file);
my $DEBUG = 1;
print "type is $type, key is $key, file is $file\n" if $DEBUG;
my $cipher = Crypt::CBC->new(
-key => $key,
-cipher => 'Blowfish'
);
local $/;
open(FH, $file) or die $!;
flock(FH, 2);
my $data = <FH>;
close(FH);
my ($save_data, $save_file);
if ($type =~ /^en(crypt)?$/) {
$save_data = $cipher->encrypt($data);
$save_file = $file . '.encrypt';
} else {
$save_data = $cipher->decrypt($data);
$save_file = $file . '.decrypt';
}
open(FH, '>', $save_file) or die $!;
print FH $save_data;
close(FH);
if (-e $save_file) {
print "$type file $file to $save_file OK\n";
} else {
print "failed without reason\n";
}
【讨论】: