Hash 函数
在线手册:中文 英文
PHP手册

hash_algos

(PHP 5 >= 5.1.2, PECL hash >= 1.1)

hash_algosReturn a list of registered hashing algorithms

说明

array hash_algos ( void )

返回值

Returns a numerically indexed array containing the list of supported hashing algorithms.

更新日志

版本 说明
5.4.0 Support for joaat, fnv132 and fnv164 was added. Support for Salsa10 and Salsa20 was removed.
5.3.0 Support for md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 and sha224 was added

范例

Example #1 hash_algos() example

As of PHP 5.3.0, hash_algos() will return the following list of algorithm names.

<?php
print_r
(hash_algos());
?>

以上例程的输出类似于:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512
    [8] => ripemd128
    [9] => ripemd160
    [10] => ripemd256
    [11] => ripemd320
    [12] => whirlpool
    [13] => tiger128,3
    [14] => tiger160,3
    [15] => tiger192,3
    [16] => tiger128,4
    [17] => tiger160,4
    [18] => tiger192,4
    [19] => snefru
    [20] => snefru256
    [21] => gost
    [22] => adler32
    [23] => crc32
    [24] => crc32b
    [25] => salsa10
    [26] => salsa20
    [27] => haval128,3
    [28] => haval160,3
    [29] => haval192,3
    [30] => haval224,3
    [31] => haval256,3
    [32] => haval128,4
    [33] => haval160,4
    [34] => haval192,4
    [35] => haval224,4
    [36] => haval256,4
    [37] => haval128,5
    [38] => haval160,5
    [39] => haval192,5
    [40] => haval224,5
    [41] => haval256,5
)


Hash 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Return a list of registered hashing algorithms

用户评论:

alvaro at demogracia dot com (16-Nov-2010 01:02)

These algorithms can be used to generate a session ID. Just pick a string value from the list and feed the session.hash_function directive with it. E.g.:

<?php
ini_set
('session.hash_function', 'whirlpool');
?>

elinor dot hurst at gmail dot REMOVEME dot com (30-Jun-2008 09:52)

static function crypt_pass($pass, $salt=NULL)
    {
        $salt_len=7;
        $algo='sha256';

        if (!$salt||strlen($salt)<$salt_len)
        {
            $salt=uniqid(rand(), TRUE);     // get unique string (length==23)
        }
        $salt=substr($salt, 0, $salt_len);

        if (function_exists('hash') && in_array($algo, hash_algos()))
        {
            $hashed=hash($algo, $salt.$pass);
        }
        else
        {
            $hashed=sha1($salt.$pass);
        }
        return $salt.$hashed;
    }