mirror of
https://github.com/postfixadmin/postfixadmin.git
synced 2024-09-19 19:22:14 +02:00
Added support for password generation cost/rounds
$CONF["php_crypt_difficulty"], only for php_crypt:BLOWFISH, php_crypt:SHA256 and php_crypt:SHA512
This commit is contained in:
parent
6100ca4cf9
commit
9c2161a549
@ -1106,7 +1106,10 @@ function _php_crypt_generate_crypt_salt($hash_type='SHA512') {
|
||||
|
||||
case 'BLOWFISH':
|
||||
$length = 22;
|
||||
$cost = 10;
|
||||
$cost = (int)$CONF['php_crypt_difficulty'];
|
||||
if ($cost < 4 || $cost > 31) {
|
||||
die('invalid $CONF["php_crypt_difficulty"] setting: ' . $CONF['php_crypt_difficulty'] . ', for ' . $hash_type . ' the valid range is 4-31');
|
||||
}
|
||||
if (version_compare(PHP_VERSION, '5.3.7') >= 0) {
|
||||
$algorithm = '2y'; // bcrypt, with fixed unicode problem
|
||||
} else {
|
||||
@ -1118,14 +1121,22 @@ function _php_crypt_generate_crypt_salt($hash_type='SHA512') {
|
||||
case 'SHA256':
|
||||
$length = 16;
|
||||
$algorithm = '5';
|
||||
$rounds = (int)$CONF['php_crypt_difficulty'];
|
||||
if ($rounds < 1000 || $rounds > 999999999) {
|
||||
die('invalid $CONF["php_crypt_difficulty"] setting: ' . $CONF['php_crypt_difficulty'] . ', for ' . $hash_type . ' the valid range is 1000-999999999');
|
||||
}
|
||||
$salt = _php_crypt_random_string($alphabet, $length);
|
||||
return sprintf('$%s$%s', $algorithm, $salt);
|
||||
return sprintf('$%s$rounds=%d$%s', $algorithm, $rounds, $salt);
|
||||
|
||||
case 'SHA512':
|
||||
$length = 16;
|
||||
$algorithm = '6';
|
||||
$rounds = (int)$CONF['php_crypt_difficulty'];
|
||||
if ($rounds < 1000 || $rounds > 999999999) {
|
||||
die('invalid $CONF["php_crypt_difficulty"] setting: ' . $CONF['php_crypt_difficulty'] . ', for ' . $hash_type . ' the valid range is 1000-999999999');
|
||||
}
|
||||
$salt = _php_crypt_random_string($alphabet, $length);
|
||||
return sprintf('$%s$%s', $algorithm, $salt);
|
||||
return sprintf('$%s$rounds=%d$%s', $algorithm, $rounds, $salt);
|
||||
|
||||
default:
|
||||
die("unknown hash type: '$hash_type'");
|
||||
|
Loading…
Reference in New Issue
Block a user