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