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');
?>
hash_algos
(PHP 5 >= 5.1.2, PECL hash >= 1.1)
hash_algos — Return a list of registered hashing algorithms
Description
array hash_algos
( void
)
Return Values
Returns a numerically indexed array containing the list of supported hashing algorithms.
Changelog
| Version | Description |
|---|---|
| 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 |
Examples
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());
?>
The above example will output something similar to:
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
)
alvaro at demogracia dot com
16-Nov-2010 05:02
elinor dot hurst at gmail dot REMOVEME dot com
30-Jun-2008 02: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;
}
