static function hash($str, $rawsalt = '', $hash = 'sha512')
{
if($rawsalt == '')
{
$rawsalt = self::rand(((strlen($str) % 3) + 1) * 5);
}
$loc = array(hash('sha1', $rawsalt), hash('sha1', $str), '');
foreach(str_split($loc[0], 1) as $index => $character)
{
$loc[2] .= $character . $loc[1][$index];
}
$hash = hash($hash, $loc[2]);
return substr_replace($hash, $rawsalt, (strlen($str) << 2) % strlen($hash), 0);
}
static function validate($str, $hash, $engine = 'sha512')
{
$salt = substr($hash, (strlen($str) << 2) % strlen(hash($engine, 1)), ((strlen($str) % 3) + 1) * 5);
return self::hash($str, $salt, $engine) === $hash ? true : false;
}
I need remove hash, sha512, md5 and other hashings without damage code