ねこ丸さん Zazelさん みなさん < こん??は でび です
On Wed, 22 Mar 2006 00:40:23 +0900
davi <davi-1984@...> wrote:
> ちょっと試してみますぅ。
サーバによってはMD5で出てこないかもしれませんが、
動きました。
execは(ってかPerlそのものも)よくわからんので
たまたま暇そうだった師匠に助けて貰いましたけど。
お騒がせいたしました。> おる
#!/usr/local/bin/perl
my %command_do = (
initialize => \&do_initialize,
exec => \&do_crypt
);
my %form;
my $result;
&get_form_value;
#print "Content-Type:text/html\n\n";
#print "mycmd=$form{mycmd}";
&{$command_do{$form{mycmd} eq ''?'initialize':$form{mycmd}}};
#&do_initialize;
exit;
sub do_initialize {
&print_html;
}
sub do_crypt {
my $plain = $form{pass};
my $salt = $form{salt};
$result = crypt($plain,$salt);
&print_html;
}
sub check_crypt {
local($plain,$crypt) = @_;
($plain ne '' && $crypt ne '' && crypt($plain,$crypt) eq $crypt);
}
sub get_form_value {
my($buffer,$pair,@pairs,$name,$value);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$form{$name} = $value;
}
}
#print_html_function
sub print_html {
print <<"HTML";
Content-Type:text/html
<html>
<head>
<title>exec crypt</title>
<meta http-equiv="Content-Type" content="text/html; charset=shift-JIS">
<script language="JavaScript">
<!--
function preCheck() {
if (form1.pass.value.length == 0) {
alert("error!!Please input the password.");
return false;
}
if (form1.salt.value.length == 0) {
alert("error! Please input the salt.");
return false;
}
return true;
}
-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="POST" action="$ENV{'SCRIPT_NAME'}" onSubmit="return preCheck()">
<input type="hidden" name="mycmd" value="exec">
password:<input type="text" name="pass" value="$form{pass}"></br>
salt:<input type="text" name="salt" value="$form{salt}"></br>
result:<input type="text" name="result" value="$result" size="80"></br>
<input type="submit" value="submit">
<input type="reset" value="clear">
</form>
</body>
</html>
HTML
}
1;
でび http://homepage1.nifty.com/davi/