function calc($a, $b) { return ($a % $b + $b) % $b; } function cr($text, $key, $go) { $keyleght = strlen($key); for ($i = 0; $i < $keyleght; ++$i){ if (!ctype_alpha($key[$i])){ return ""; } } $out = ""; $fos = 0; $textleght = strlen($text); for ($i = 0; $i < $textleght; ++$i){ if (ctype_alpha($text[$i])){ $up = ctype_upper($text[$i]); $offset = ord($up ? 'A' : 'a'); $keyind = ($i - $fos) % $keyleght; $k = ord($up ? strtoupper($key[$keyind]) : strtolower($key[$keyind])) - $offset; $k = $go ? $k : -$k; $ch = chr((calc(((ord($text[$i]) + $k) - $offset), 26)) + $offset); $out .= $ch; }else{ $out .= $text[$i]; ++$fos; } } return $out; } function enc($text, $key) //encrypt { return cr($text, $key, true); } function dec($text, $key) //decrypt { return cr($input, $key, false); }