暗号化・復号化できる単純なテキストの暗号化
$ENC_KEY1=11; # 1〜200くらい
$ENC_KEY2=5; # 1〜20くらい
$a="Test テスト";
$b=&strEnc($a);
print "Enc:$b\n";
print "Dec:".&strDec($b)."\n";
exit;
sub strEnc{
my $a=$_[0];my $i;
for($i=0;$i<length($a);$i++){substr($a,$i,1)=chr((ord(substr($a,$i,1))-$ENC_KEY2)^$ENC_KEY1);}
$a=~s/(\W)/sprintf("%%%02X",unpack("C",$1))/eg;
return $a;}
sub strDec{
my $a=$_[0];my $i;
$a=~s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C",hex($1))/eg;
for($i=0;$i<length($a);$i++){substr($a,$i,1)=chr((ord(substr($a,$i,1))^$ENC_KEY1)+$ENC_KEY2);}
return $a;}
実行結果
Enc:Dked%10ukuXui
Dec:Test テスト |
Back