note 91568 modified in function.hash by thiago
| From: | thiago@php.net | Date: | Wed, 17 Jun 2009 12:11:56 +0000 |
| Subject: | note 91568 modified in function.hash by thiago | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-156968@lists.php.net to get a copy of this message | ||
Here is a more complete emulation of the hash function using mhash.
<?php
f (!function_exists('hash_algos'))
{
function hash_algos()
{
$algos = array(
'md4', 'md5', 'crc32', 'crc32b',
'sha1', 'sha256',
'haval128,3', 'haval128,4', 'haval128,5',
'haval160,3', 'haval160,4', 'haval160,5',
'haval192,3', 'haval192,4', 'haval192,5',
'haval224,3', 'haval224,4', 'haval224,5',
'haval256,3', 'haval256,4', 'haval256,5',
'tiger128,3', 'tiger128,4',
'tiger160,3', 'tiger160,4',
'tiger192,3', 'tiger192,4',
'adler32', 'gost',
);
return $algos;
}
}
if (!function_exists('hash'))
{
function hash($algo, $data, $raw_output = false)
{
switch(strtolower($algo))
{
case 'md5':
return md5($data, $raw_output);
case 'sha1':
return sha1($data, $raw_output);
case 'crc32':
return crc32($data);
case 'sha256':
return $raw_output?mhash(MHASH_SHA256, $data):bin2hex(mhash(MHASH_SHA256, $data));
case 'haval128,3':
case 'haval128,4':
case 'haval128,5':
return $raw_output?mhash(MHASH_HAVAL128, $data):bin2hex(mhash(MHASH_HAVAL128, $data));
case 'haval160,3':
case 'haval160,4':
case 'haval160,5':
return $raw_output?mhash(MHASH_HAVAL160, $data):bin2hex(mhash(MHASH_HAVAL160, $data));
case 'haval192,3':
case 'haval192,4':
case 'haval192,5':
return $raw_output?mhash(MHASH_HAVAL192, $data):bin2hex(mhash(MHASH_HAVAL192, $data));
case 'haval224,3':
case 'haval224,4':
case 'haval224,5':
return $raw_output?mhash(MHASH_HAVAL224, $data):bin2hex(mhash(MHASH_HAVAL224, $data));
case 'haval256,3':
case 'haval256,4':
case 'haval256,5':
return $raw_output?mhash(MHASH_HAVAL256, $data):bin2hex(mhash(MHASH_HAVAL256, $data));
case 'tiger128,3':
case 'tiger128,4':
return $raw_output?mhash(MHASH_TIGER128, $data):bin2hex(mhash(MHASH_TIGER128, $data));
case 'tiger160,3':
case 'tiger160,4':
return $raw_output?mhash(MHASH_TIGER160, $data):bin2hex(mhash(MHASH_TIGER160, $data));
case 'tiger192,3':
case 'tiger192,4':
return $raw_output?mhash(MHASH_TIGER, $data):bin2hex(mhash(MHASH_TIGER, $data));
case 'adler32':
return $raw_output?mhash(MHASH_ADLER32, $data):bin2hex(mhash(MHASH_ADLER32, $data));
case 'gost':
return $raw_output?mhash(MHASH_GOST, $data):bin2hex(mhash(MHASH_GOST, $data));
case 'md4':
return $raw_output?mhash(MHASH_MD4, $data):bin2hex(mhash(MHASH_MD4, $data));
case 'ripemd160':
return $raw_output?mhash(MHASH_RIPEMD160, $data):bin2hex(mhash(MHASH_RIPEMD160, $data));
case 'crc32b':
return $raw_output?mhash(MHASH_CRC32B, $data):bin2hex(mhash(MHASH_CRC32B, $data));
default:
return false;
}
}
}
?>
[EDITOR NOTE: Credits to "Peter Kelly"]
--was--
In response to Peter Kelly, 29-Jan-2007 01:32:
Here is a more complete emulation of the hash function using mhash.
<?php
f (!function_exists('hash_algos'))
{
function hash_algos()
{
$algos = array(
'md4', 'md5', 'crc32', 'crc32b',
'sha1', 'sha256',
'haval128,3', 'haval128,4', 'haval128,5',
'haval160,3', 'haval160,4', 'haval160,5',
'haval192,3', 'haval192,4', 'haval192,5',
'haval224,3', 'haval224,4', 'haval224,5',
'haval256,3', 'haval256,4', 'haval256,5',
'tiger128,3', 'tiger128,4',
'tiger160,3', 'tiger160,4',
'tiger192,3', 'tiger192,4',
'adler32', 'gost',
);
return $algos;
}
}
if (!function_exists('hash'))
{
function hash($algo, $data, $raw_output = false)
{
switch(strtolower($algo))
{
case 'md5':
return md5($data, $raw_output);
case 'sha1':
return sha1($data, $raw_output);
case 'crc32':
return crc32($data);
case 'sha256':
return $raw_output?mhash(MHASH_SHA256, $data):bin2hex(mhash(MHASH_SHA256, $data));
case 'haval128,3':
case 'haval128,4':
case 'haval128,5':
return $raw_output?mhash(MHASH_HAVAL128, $data):bin2hex(mhash(MHASH_HAVAL128, $data));
case 'haval160,3':
case 'haval160,4':
case 'haval160,5':
return $raw_output?mhash(MHASH_HAVAL160, $data):bin2hex(mhash(MHASH_HAVAL160, $data));
case 'haval192,3':
case 'haval192,4':
case 'haval192,5':
return $raw_output?mhash(MHASH_HAVAL192, $data):bin2hex(mhash(MHASH_HAVAL192, $data));
case 'haval224,3':
case 'haval224,4':
case 'haval224,5':
return $raw_output?mhash(MHASH_HAVAL224, $data):bin2hex(mhash(MHASH_HAVAL224, $data));
case 'haval256,3':
case 'haval256,4':
case 'haval256,5':
return $raw_output?mhash(MHASH_HAVAL256, $data):bin2hex(mhash(MHASH_HAVAL256, $data));
case 'tiger128,3':
case 'tiger128,4':
return $raw_output?mhash(MHASH_TIGER128, $data):bin2hex(mhash(MHASH_TIGER128, $data));
case 'tiger160,3':
case 'tiger160,4':
return $raw_output?mhash(MHASH_TIGER160, $data):bin2hex(mhash(MHASH_TIGER160, $data));
case 'tiger192,3':
case 'tiger192,4':
return $raw_output?mhash(MHASH_TIGER, $data):bin2hex(mhash(MHASH_TIGER, $data));
case 'adler32':
return $raw_output?mhash(MHASH_ADLER32, $data):bin2hex(mhash(MHASH_ADLER32, $data));
case 'gost':
return $raw_output?mhash(MHASH_GOST, $data):bin2hex(mhash(MHASH_GOST, $data));
case 'md4':
return $raw_output?mhash(MHASH_MD4, $data):bin2hex(mhash(MHASH_MD4, $data));
case 'ripemd160':
return $raw_output?mhash(MHASH_RIPEMD160, $data):bin2hex(mhash(MHASH_RIPEMD160, $data));
case 'crc32b':
return $raw_output?mhash(MHASH_CRC32B, $data):bin2hex(mhash(MHASH_CRC32B, $data));
default:
return false;
}
}
}
?>
http://php.net/manual/en/function.hash.php