<?
 $cal_map = array(
 'a' => 1,
 'b' => 2,
 'c' => 3,
 'd' => 4,
 'e' => 5,
 'f' => 6,
 'g' => 7,
 'h' => 8,
 'i' => 9,
 'j' => 10,
 'k' => 11,
 'l' => 12,
 'm' => 13,
 'n' => 14,
 'o' => 15,
 'p' => 16,
 'q' => 17,
 'r' => 18,
 's' => 19,
 't' => 20,
 'u' => 21,
 'v' => 22,
 'w' => 23,
 'x' => 24,
 'y' => 25,
 'z' => 26,
 '1' => 27,
 '2' => 28,
 '3' => 29,
 '4' => 30,
 '5' => 31,
 '6' => 32,
 '7' => 33,
 '8' => 34,
 '9' => 35,
 '0' => 36,
 'A' => 37,
 'B' => 38,
 'C' => 39,
 'D' => 40,
 'E' => 41,
 'F' => 42,
 'G' => 43,
 'H' => 44,
 'I' => 45,
 'J' => 46,
 'K' => 47,
 'L' => 48,
 'M' => 49,
 'N' => 50,
 'O' => 51,
 'P' => 52,
 'Q' => 53,
 'R' => 54,
 'S' => 55,
 'T' => 56,
 'U' => 57,
 'V' => 58,
 'W' => 59,
 'X' => 60,
 'Y' => 61,
 'Z' => 62,
 '!' => 63,
 '\"' => 64,
 '」' => 65,
 '\$' => 66,
 '^' => 67,
 '&' => 68,
 '*' => 69,
 '(' => 70,
 ')' => 71,
 '_' => 72,
 '+' => 73,
 '-' => 74,
 '=' => 75,
 '`' => 76,
 ',' => 77,
 '.' => 78,
 '/' => 79,
 '<' => 80,
 '>' => 81,
 '?' => 82,
 ';' => 83,
 '\'' => 84,
 '#' => 85,
 ':' => 86,
 '@' => 87,
 '~' => 88,
 '[' => 89,
 ']' => 90,
 '{' => 91,
 '}' => 92,
 ' ' => 93,
 '%' => 94,
 );
 function lookup($char){
 global $cal_map;
 foreach(array_keys($cal_map) as $k){
 if ($cal_map[$k] == $char){
 return $k;
 }
 }
 }
 function crack_total($nums){
 for ($i = 0; $i<=1000; $i++){
 $total = 0;
 foreach($nums as $num){
 $total += $num - $i;
 }
 if ($i == $total){
 return $i;
 }
 }
 return 0;
 }
 function crack_gcrypt($input){
 $chars = array();
 for ($i = 0; $i < strlen($input); $i++){
 $chars[] = substr($input, $i, 1);
 }
 $nums = array();
 $c = 0;
 while($c < count($chars)){
 $len = $chars[$c];
 $c++;
 $char = '';
 for($i=0; $i<$len; $i++){
 $char .= $chars[$c];
 $c++;
 }
 $nums[] = $char;
 }
 $total = crack_total($nums);
 $output = '';
 foreach($nums as $num){
 $output .= lookup($num - $total);
 }
 return $output;
 }
?>

AltStyle によって変換されたページ (->オリジナル) /