$SELF = sprintf('http://%s%s', $ENV{'SERVER_NAME'}, $ENV{'SCRIPT_NAME'}); $JCODE = './jcode.pl'; $RAND_MAX = 256; { if( $ENV{'REQUEST_METHOD'} eq 'GET' ){ $query = $ENV{ 'QUERY_STRING' }; &getparam( $query ); if( $param{ 'mode' } eq 'what' ){ $what = '1'; } elsif( $param{ 'mode' } eq 'source' ){ $source = '1'; } else{ $sys = '1'; } } my %FORM; if( $ENV{'REQUEST_METHOD'} eq 'POST' ){ my $buffer; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); &parseForm($buffer, \%FORM); } my $action = $FORM{'action'}; my $value = ''; if( $action eq 'encode' ){ if($FORM{'pwd'}){ $value = &encode($FORM{'value'}, $FORM{'pwd'}); } $sys = '1'; } elsif( $action eq 'decode' ){ if($FORM{'pwd'}){ $value = &decode($FORM{'value'}, $FORM{'pwd'}); } $sys = '1'; } else{ $value = ''; } &printHtml(<<_HTML_); 暗号化TOOL
暗号化TOOL
送る相手はココで探せ!!
[説明] [ソース]
_HTML_ if($sys == '1'){ print <
文章を入力

暗号キー:
モード選択
メールで送る

EOM } if($source eq '1'){ print < 以下のタグをコピーしてあなたのホームページに貼り付けてください。

*注意
ソース直貼OK、許可無しでのリンクOK、著作権表示義務無しですが、著作権は放棄していません。

[] EOM } if($what eq '1'){ print < 文章を設定したパスワードで暗号化します。

復元するには設定したパスワードが必要となります。

まあ普通に考えて知られたく無い内容のメールを送る時にでも使うんでしょう・・・

その他の使い方は考えてください・・・。

[] EOM } print <
ノリのいい女が多い
初メールから盛り上り

Powered by
Mobile-Tool EOM } exit; sub parseForm { my $data = shift; my $FORM = shift; require $JCODE; foreach $key_value ( split(/&/, $data) ) { my($key, $value) = split(/=/, $key_value); $value =~ tr/+/ /; $value =~ s/%([\da-fA-F]{2})/chr(hex($1))/eg; &jcode::convert(*value, 'sjis'); # 改行の統一 $value =~ s/\r\n\n|\r\n|\n/\n/gs; $FORM->{$key} = $value; } } sub encode { my $value = shift; my $pwd = shift; my @keys; srand($pwd); @keys = split(//, $pwd); { my $i = 0; $value =~ s/./$&^chr(rand($RAND_MAX))/ges; $value =~ s/./sprintf('%02x', ord($&)^ord($keys[$i++ % @keys]))/ges; } return $value; } sub decode { my $value = shift; my $pwd = shift; my @keys; srand($pwd); @keys = split(//, $pwd); { my $i = 0; $value =~ s/[\da-f]{2}/chr(hex($&)^ord($keys[$i++ % @keys]))/iges; $value =~ s/./$&^chr(rand($RAND_MAX))/ges; } return $value; } sub printHtml { my $html = shift; print "Content-type: text/html\n"; print "\n"; print $html; } sub getparam { my( $value, $key ); foreach $in_param ( split( /&/, $query ) ) { ( $key, $value ) = split( /=/, $in_param ); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1) )/ge; $param{ $key } = $value; } }