"); ?>
cryptbin
=6 && $c<=8) { $gen .= chr(32); }
else if ($c==9) { $gen .= chr(13); }
}
return $gen;
}
function numgen($size) {
$gen = chr(mt_rand(49,57));
$size--;
for ($i=0; $i<$size; $i++) {
$gen .= chr(mt_rand(48,57));
}
return $gen;
}
function getdelim($KEY, $which) {
if ($which == 1) {
$delim = md5(substr($KEY, 0, -16));
}
if ($which == 2) {
$delim = md5(substr($KEY, 15, -0));
}
return $delim;
}
function gensecret() {
$secret = numgen(7);
$secret .= gen(29);
return $secret;
}
function genpublic($secret) {
global $p;
global $g;
$secret1 = substr($secret, 0, -29);
$secret2 = substr($secret, 7, 29);
$secret2 = md5($secret2);
$public = gmp_pow($g, $secret1);
$public = gmp_mod($public, $p);
$public = gmp_strval($public);
return $public.$secret2;
}
function pub2key($secret, $public) {
global $p;
$secret = substr($secret, 0, -29);
$public1 = substr($public, 0, -32);
if (strlen($public) == 35) {
$public2 = substr($public, 3, 32);
}
else {
$public2 = substr($public, 4, 32);
}
$secret = strval($secret);
$public1 = strval($public1);
$key = gmp_pow($public1, $secret);
$key = gmp_mod($key, $p);
$key = gmp_strval($key);
$key .= $public2;
$key = md5($key);
return $key;
}
function key2pub($secret, $public) {
global $p;
$secret1 = substr($secret, 0, -29);
$secret2 = substr($secret, 7, 29);
$public1 = substr($public, 0, -32);
$secret1 = strval($secret1);
$public1 = strval($public1);
$key = gmp_pow($public1, $secret1);
$key = gmp_mod($key, $p);
$key = gmp_strval($key);
$genpublic = genpublic($secret);
if (strlen($genpublic) == 36) {
$x = 4;
}
else {
$x = 3;
}
if (substr($genpublic, $x, 32) == md5($secret2)) {
$key .= md5($secret2);
$key = md5($key);
return $key;
}
else {
return 0;
}
}
function getkey($KEY, $padlength) {
$keypad1 = substr(md5($KEY.$padlength), 0, -24);
$keypad2 = substr(md5($KEY.$padlength), 24, -0);
$KEY = substr(md5($keypad1.$KEY.$padlength.$keypad2), 1, -1);
return $KEY;
}
function extractunit($string, $delim1, $delim2) {
$pos = stripos($string, $delim1);
$str = substr($string, $pos);
$str_two = substr($str, strlen($delim1));
$second_pos = stripos($str_two, $delim2);
$unit = substr($str_two, 0, $second_pos);
return $unit;
}
function encrypt($field, $KEY) {
$iv = mcrypt_create_iv(mcrypt_get_block_size(MCRYPT_TWOFISH, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
$padlength = strlen($KEY) * 768;
$KEY = getkey($KEY, $padlength);
$enc .= megagen($padlength);
$enc .= getdelim($KEY, 1);
$enc .= $field;
$field = 0;
$enc .= getdelim($KEY, 2);
$enc .= megagen($padlength);
$enc = mcrypt_cbc(MCRYPT_TWOFISH, $KEY, $enc, MCRYPT_ENCRYPT, $iv);
$KEY = 0;
return $enc;
}
function decrypt($field, $KEY) {
$iv = mcrypt_create_iv(mcrypt_get_block_size(MCRYPT_TWOFISH, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
$padlength = strlen($KEY) * 768;
$field = trim($field);
$KEY = getkey($KEY, $padlength);
$dec = mcrypt_cbc(MCRYPT_TWOFISH, $KEY, $field, MCRYPT_DECRYPT, $iv);
if (strstr($dec, getdelim($KEY, 1)) && strstr($dec, getdelim($KEY, 2))) {
return htmlspecialchars(extractunit($dec, getdelim($KEY, 1), getdelim($KEY, 2)));
}
else {
return "Invalid key.";
}
$KEY = 0;
}
/* END FUNCTIONS */
print("
");
}
else if (isset($_GET["id"]) && $unlockneeded) {
print("");
}
else if ($unlocked) {
print("");
}
else {
print("");
}
?>