bnet2 - new hashing algorithm.
Used in conjunction with the salt.
This algorithm uses the arithmetic of the GMP library (with an infinite number)
The easiest way to implement in PHP, write a small script in PHP to iterate through the hash at least a dictionary (using the above code) and juzat it on a server.
Encryption Algorithm:
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
// BNet
private static $N = array(0xAB, 0x24, 0x43, 0x63, 0xA9, 0xC2, 0xA6, 0xC3, 0x3B, 0x37, 0xE4, 0x61, 0x84, 0x25, 0x9F, 0x8B,
0x3F, 0xCB, 0x8A, 0x85, 0x27, 0xFC, 0x3D, 0x87, 0xBE, 0xA0, 0x54, 0xD2, 0x38, 0x5D, 0x12, 0xB7,
0x61, 0x44, 0x2E, 0x83, 0xFA, 0xC2, 0x21, 0xD9, 0x10, 0x9F, 0xC1, 0x9F, 0xEA, 0x50, 0xE3, 0x09,
0xA6, 0xE5, 0x5E, 0x23, 0xA7, 0x77, 0xEB, 0x00, 0xC7, 0xBA, 0xBF, 0xF8, 0x55, 0x8A, 0x0E, 0x80,
0x2B, 0x14, 0x1A, 0xA2, 0xD4, 0x43, 0xA9, 0xD4, 0xAF, 0xAD, 0xB5, 0xE1, 0xF5, 0xAC, 0xA6, 0x13,
0x1C, 0x69, 0x78, 0x64, 0x0B, 0x7B, 0xAF, 0x9C, 0xC5, 0x50, 0x31, 0x8A, 0x23, 0x08, 0x01, 0xA1,
0xF5, 0xFE, 0x31, 0x32, 0x7F, 0xE2, 0x05, 0x82, 0xD6, 0x0B, 0xED, 0x4D, 0x55, 0x32, 0x41, 0x94,
0x29, 0x6F, 0x55, 0x7D, 0xE3, 0x0F, 0x77, 0x19, 0xE5, 0x6C, 0x30, 0xEB, 0xDE, 0xF6, 0xA7, 0x86);
private function toBigIndian($hash)
{
$bigEndianHash = "";
for ($i = strlen($hash); $i > 0; $i -= 2)
$bigEndianHash .= $hash[$i - 2] . $hash[$i - 1];
return $bigEndianHash;
}
public function bnet2Salt($n) {
static $chars = "0123456789ABCDEF";
$salt = "";
for ($i = 0; $i < $n; $i++) {
$salt .= $chars{rand(0, strlen($chars) - 1)} . $chars{rand(0, strlen($chars) - 1)};
}
return $salt;
}
private function setLen($str, $len) {
while (strlen($str) <len>setLen(hash("sha256", strtolower($username)), 64);
$p_sha256 = $this->setLen(hash("sha256", strtoupper($i_sha256) . ':' . strtoupper($password)), 64);
$x_sha256 = $this->toBigIndian($this->setLen(hash("sha256", pack("H*", strtolower($this->bnet2_salt) . $p_sha256)), 64));
$BX = gmp_init("0x" . $x_sha256);
$BN = gmp_init("0x" . bin2hex(implode(array_map("chr", array_reverse(self::$N)))));
$BV = gmp_powm($modulo, $BX, $BN);
$hex = $this->setLen(gmp_strval($BV, 16), 256);
return $this->toBigIndian($hex);
}
// end BNet
}
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
Example hashes:
bnet2_pass_hash: ab4843f610294d35d3e7d4d07219a3046efcf4476548ed1e228e738049fbe1277cd2152bfc272f4d20c8ae72d9327eda010651ee5e533316680416148aa8843e3a8e671c1463db8c3fece559e00cff0a5828102dd2fc8bba3c7d226bdd3438bf655fc2feb0917df06ab73fa16495f44d160edab4ae871a640d677c292996d831
bnet2_salt: DF66E7B36B9B1C14154580B48AB027C07275939FE2BFEC3F185A81F1BB1E2EE9
Raven password: 123456789
username: slime1st@yandex.ru
Used in conjunction with the salt.
This algorithm uses the arithmetic of the GMP library (with an infinite number)
The easiest way to implement in PHP, write a small script in PHP to iterate through the hash at least a dictionary (using the above code) and juzat it on a server.
Encryption Algorithm:
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
// BNet
private static $N = array(0xAB, 0x24, 0x43, 0x63, 0xA9, 0xC2, 0xA6, 0xC3, 0x3B, 0x37, 0xE4, 0x61, 0x84, 0x25, 0x9F, 0x8B,
0x3F, 0xCB, 0x8A, 0x85, 0x27, 0xFC, 0x3D, 0x87, 0xBE, 0xA0, 0x54, 0xD2, 0x38, 0x5D, 0x12, 0xB7,
0x61, 0x44, 0x2E, 0x83, 0xFA, 0xC2, 0x21, 0xD9, 0x10, 0x9F, 0xC1, 0x9F, 0xEA, 0x50, 0xE3, 0x09,
0xA6, 0xE5, 0x5E, 0x23, 0xA7, 0x77, 0xEB, 0x00, 0xC7, 0xBA, 0xBF, 0xF8, 0x55, 0x8A, 0x0E, 0x80,
0x2B, 0x14, 0x1A, 0xA2, 0xD4, 0x43, 0xA9, 0xD4, 0xAF, 0xAD, 0xB5, 0xE1, 0xF5, 0xAC, 0xA6, 0x13,
0x1C, 0x69, 0x78, 0x64, 0x0B, 0x7B, 0xAF, 0x9C, 0xC5, 0x50, 0x31, 0x8A, 0x23, 0x08, 0x01, 0xA1,
0xF5, 0xFE, 0x31, 0x32, 0x7F, 0xE2, 0x05, 0x82, 0xD6, 0x0B, 0xED, 0x4D, 0x55, 0x32, 0x41, 0x94,
0x29, 0x6F, 0x55, 0x7D, 0xE3, 0x0F, 0x77, 0x19, 0xE5, 0x6C, 0x30, 0xEB, 0xDE, 0xF6, 0xA7, 0x86);
private function toBigIndian($hash)
{
$bigEndianHash = "";
for ($i = strlen($hash); $i > 0; $i -= 2)
$bigEndianHash .= $hash[$i - 2] . $hash[$i - 1];
return $bigEndianHash;
}
public function bnet2Salt($n) {
static $chars = "0123456789ABCDEF";
$salt = "";
for ($i = 0; $i < $n; $i++) {
$salt .= $chars{rand(0, strlen($chars) - 1)} . $chars{rand(0, strlen($chars) - 1)};
}
return $salt;
}
private function setLen($str, $len) {
while (strlen($str) <len>setLen(hash("sha256", strtolower($username)), 64);
$p_sha256 = $this->setLen(hash("sha256", strtoupper($i_sha256) . ':' . strtoupper($password)), 64);
$x_sha256 = $this->toBigIndian($this->setLen(hash("sha256", pack("H*", strtolower($this->bnet2_salt) . $p_sha256)), 64));
$BX = gmp_init("0x" . $x_sha256);
$BN = gmp_init("0x" . bin2hex(implode(array_map("chr", array_reverse(self::$N)))));
$BV = gmp_powm($modulo, $BX, $BN);
$hex = $this->setLen(gmp_strval($BV, 16), 256);
return $this->toBigIndian($hex);
}
// end BNet
}
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
Example hashes:
bnet2_pass_hash: ab4843f610294d35d3e7d4d07219a3046efcf4476548ed1e228e738049fbe1277cd2152bfc272f4d20c8ae72d9327eda010651ee5e533316680416148aa8843e3a8e671c1463db8c3fece559e00cff0a5828102dd2fc8bba3c7d226bdd3438bf655fc2feb0917df06ab73fa16495f44d160edab4ae871a640d677c292996d831
bnet2_salt: DF66E7B36B9B1C14154580B48AB027C07275939FE2BFEC3F185A81F1BB1E2EE9
Raven password: 123456789
username: slime1st@yandex.ru