(PHP 5 >= 5.1.2, PECL hash >= 1.1)
hash_algos — Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück
Gibt ein nicht-assoziatives Array mit allen unterstützten Hashing-Algorithmen zurück.
Beispiel #1 hash_algos()-Beispiel
Ab PHP 5.1.2 gibt hash_algos() die folgende Liste von Algorithmen zurück.
<?php
print_r(hash_algos());
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
    [0] => md4
    [1] => md5
    [2] => sha1
    [3] => sha256
    [4] => sha384
    [5] => sha512
    [6] => ripemd128
    [7] => ripemd160
    [8] => whirlpool
    [9] => tiger128,3
    [10] => tiger160,3
    [11] => tiger192,3
    [12] => tiger128,4
    [13] => tiger160,4
    [14] => tiger192,4
    [15] => snefru
    [16] => gost
    [17] => adler32
    [18] => crc32
    [19] => crc32b
    [20] => haval128,3
    [21] => haval160,3
    [22] => haval192,3
    [23] => haval224,3
    [24] => haval256,3
    [25] => haval128,4
    [26] => haval160,4
    [27] => haval192,4
    [28] => haval224,4
    [29] => haval256,4
    [30] => haval128,5
    [31] => haval160,5
    [32] => haval192,5
    [33] => haval224,5
    [34] => haval256,5
)
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');
?>
As of PHP 5.3, you have also: md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 and sha224. ;)
Regards,
Paulo Ricardo
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;
    }