(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;
}