Я пытаюсь хранить пароли в зашифрованном формате, но, похоже, он работает неправильно. Вот код php, который я использую.
function encryptMe($input, $salt){
$output = crypt($input,$salt);
return $output;
}
function getSalt(){
//set number of repititions
$reps="5000";
$salt = substr(str_replace('+', '.', base64_encode(
pack('N4', mt_rand(), mt_rand(), mt_rand(), mt_rand())
)), 0, 16);
$salt = "$6$"."rounds=".$reps."$".$salt;
return $salt;
}
В моем коде также есть следующее утверждение.
$input['password'] = $_POST['password'];
$salt = getSalt();
$input['password'] = encryptMe($input['password'],$salt);
Я запускал это несколько раз с другой солью, но одним и тем же паролем и продолжаю получать один и тот же хеш. Изменение соли, кажется, не имеет никакого эффекта, и я не могу понять, что не так. Может кто-нибудь взглянуть на этот код и помочь мне?
Также есть ли способ убедить, что используется SHA512?