#!/usr/local/bin/perl use Digest::SHA qw( sha1 sha1_base64 sha1_hex sha224 sha224_base64 sha224_hex sha256 sha256_base64 sha256_hex sha384 sha384_base64 sha384_hex sha512 sha512_base64 sha512_hex sha512224 sha512224_base64 sha512224_hex sha512256 sha512256_base64 sha512256_hex); # アプできるファイルの最大サイズ(Mega Byte) $mb = '512'; # スクリプトのタイトル $title = 'くえりー_SHA変換機'; if ($ENV{'PATH_INFO'} eq '/source') { print "Content-type: text/plain; charset=utf-8;\n\n"; open(R, "./query_SHA.cgi"); print while ; close(R); exit; } $buffer = ''; $max_size = $mb * 1024 * 1024; if ($ENV{'QUERY_STRING'} > $max_size) { $error = 'ファイルが大きすぎます!'; } if (!$ENV{'QUERY_STRING'} || $error) { &html; } ($q,$buffer) = split(/=/,$ENV{'QUERY_STRING'}); if ($ENV{'PATH_INFO'}) { $buffer = $ENV{'PATH_INFO'}; } if ($buffer) { $value = ''; $value.= '
';
  $value.= "-" x 240;

  $value.= "\n  QUERY_STRING\t\t:  $buffer\n";
  $value.= "\n  sha1_hex\t\t:  "; $value.= sha1_hex($buffer);
  $value.= "\n  sha1_base64\t\t:  "; $value.= sha1_base64($buffer);

  $value.= "\n  sha256_hex\t\t:  "; $value.= sha256_hex($buffer);
  $value.= "\n  sha256_base64\t\t:  "; $value.= sha256_base64($buffer);

  $value.= "\n  sha512_hex\t\t:  "; $value.= sha512_hex($buffer);
  $value.= "\n  sha512_base64\t\t:  "; $value.= sha512_base64($buffer);

  $value.= "\n  sha512224_hex\t\t:  "; $value.= sha512224_hex($buffer);
  $value.= "\n  sha512224_base64\t:  "; $value.= sha512224_base64($buffer);
  $value.= "\n";

  $value.= "-" x 240;
  $value.= '
'; } $error = "

Encode完了デス。

\n"; $error.= $value; &html; sub html { print "Content-type: text/html\n\n"; print <<"_HTML_"; $title

$title [ソース]

$stack $error

(約 $mb Mega\Byteまで)
_HTML_ exit; }