本文整理汇总了PHP中mhash_get_hash_name函数的典型用法代码示例。如果您正苦于以下问题:PHP mhash_get_hash_name函数的具体用法?PHP mhash_get_hash_name怎么用?PHP mhash_get_hash_name使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了mhash_get_hash_name函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* @brief Constructor
*
* @param String $algo The algorithm
*/
public function __construct($algo)
{
$algo = strtolower($algo);
// Check for support
if (extension_loaded('hash')) {
// We got the hashing support, so let's check if the algorithm is
// supported.
if (arr::hasValue(hash_algos(), $algo)) {
$this->module = self::MOD_HASH;
$this->algo = $algo;
return;
}
}
if (extension_loaded('mhash')) {
// No hash support but mhash support, can it handle the algorithm?
$num = mhash_count();
for ($i = 0; $i <= $num; $i++) {
if (mhash_get_hash_name($i) == $algo) {
$this->module = self::MOD_MHASH;
$this->algo = $algo;
return;
}
}
}
// Fall back on legacy spport here, is the algorithm one of the
// by php supported ones?
if (arr::hasValue(array('md5', 'sha1', 'crc32'), $algo)) {
$this->module = self::MOD_PHP;
$this->algo = $algo;
return;
}
// No support, throw exception
throw new SecurityException("Request for unsupported hash algorithm");
}
示例2: _getMhashDefinition
/**
* Since MHASH accepts an integer constant representing the hash algorithm
* we need to make a small detour to get the correct integer matching our
* algorithm's name.
*
* @param string $hashAlgorithm
* @return integer
*/
protected static function _getMhashDefinition($hashAlgorithm)
{
for ($i = 0; $i <= mhash_count(); $i++) {
$types[mhash_get_hash_name($i)] = $i;
}
return $types[strtoupper($hashAlgorithm)];
}
示例3: mhash
function mhash($hashtype, $text, $key)
{
#-- hash function
if (!($func = mhash_get_hash_name($hashtype)) || !function_exists($func)) {
return trigger_error("mhash: cannot use hash algorithm #{$hashtype}/{$func}", E_USER_ERROR);
}
if (!$key) {
trigger_error("mhash: called without key", E_USER_WARNING);
}
#-- params
$bsize = mhash_get_block_size($hashtype);
// fixed size, 64
#-- pad key
if (strlen($key) > $bsize) {
// hash key, when it's too long
$key = $func($key);
$key = pack("H*", $key);
// binarify
}
$key = str_pad($key, $bsize, "");
// fill up with NULs (1)
#-- prepare inner and outer padding stream
$ipad = str_pad("", $bsize, "6");
// %36
$opad = str_pad("", $bsize, "\\");
// %5C
#-- call hash func // php can XOR strings for us
$dgst = pack("H*", $func(($key ^ $ipad) . $text));
// (2,3,4)
$dgst = pack("H*", $func(($key ^ $opad) . $dgst));
// (5,6,7)
return $dgst;
}
示例4: array
<?php
$supported_hash_al = array("MD5" => 16, "MD4" => 16, "SHA1" => 20, "SHA256" => 32, "HAVAL256" => 32, "HAVAL192" => 24, "HAVAL224" => 28, "HAVAL160" => 20, "HAVAL128" => 16, "RIPEMD160" => 20, "GOST" => 32, "TIGER" => 24, "TIGER160" => 20, "TIGER128" => 16, "CRC32" => 4, "CRC32B" => 4, "ADLER32" => 4, "NA_XYZ" => 0);
$hc = mhash_count() + 1;
$known_hash_al = array();
for ($i = 0; $i < $hc; $i++) {
$known_hash_al[mhash_get_hash_name($i)] = $i;
}
foreach ($supported_hash_al as $name => $len) {
if (array_key_exists($name, $known_hash_al)) {
$len = mhash_get_block_size($known_hash_al[$name]);
echo "{$name} = {$len}\n";
} else {
echo "{$name} ? {$len}\n";
}
}
示例5: html_header_demo
require_once FREEBEER_BASE . '/lib/Mhash.php';
echo html_header_demo('fbMhash Class (mhash() Emulation)');
$data = 'data';
$key = 'key';
echo "<pre>\n";
echo "mhash(MHASH_MD5, '{$data}', '{$key}')=", mhash(MHASH_MD5, $data, $key), "\n";
echo "bin2hex(mhash(MHASH_MD5, '{$data}', '{$key}'))= ", bin2hex(mhash(MHASH_MD5, $data, $key)), "\n";
if (class_exists('fbMhash')) {
echo "fbMhash::mhashhex(MHASH_MD5, '{$data}', '{$key}')=", fbMhash::mhashhex(MHASH_MD5, $data, $key), "\n";
}
if (defined('MHASH_SHA1')) {
echo "mhash(MHASH_SHA1, '{$data}', '{$key}')=", mhash(MHASH_SHA1, $data, $key), "\n";
echo "bin2hex(mhash(MHASH_SHA1, '{$data}', '{$key}'))= ", bin2hex(mhash(MHASH_SHA1, $data, $key)), "\n";
if (class_exists('fbMhash')) {
echo "fbMhash::mhashhex(MHASH_SHA1, '{$data}', '{$key}')=", fbMhash::mhashhex(MHASH_SHA1, $data, $key), "\n";
}
}
$hash_map = array(0 => 'MHASH_CRC32', 9 => 'MHASH_CRC32B', 8 => 'MHASH_GOST', 13 => 'MHASH_HAVAL128', 12 => 'MHASH_HAVAL160', 11 => 'MHASH_HAVAL192', 10 => 'MHASH_HAVAL224', 3 => 'MHASH_HAVAL256', 16 => 'MHASH_MD4', 1 => 'MHASH_MD5', 5 => 'MHASH_RIPEMD160', 2 => 'MHASH_SHA1', 17 => 'MHASH_SHA256', 7 => 'MHASH_TIGER', 14 => 'MHASH_TIGER128', 15 => 'MHASH_TIGER160');
$nr = mhash_count();
for ($i = 0; $i < $nr; $i++) {
echo sprintf("The blocksize of %s is %d\n", mhash_get_hash_name($i), mhash_get_block_size($i));
}
?>
</pre>
<address>
$CVSHeader: _freebeer/www/demo/Mhash.php,v 1.2 2004/03/07 17:51:33 ross Exp $
</address>
</body>
</html>