Хэш-пароль и возвращаемая строка со специальными символами

Я пытаюсь использовать алгоритм хеширования, который действительно сильный и выводит специальные символы в закодированной строке в PHP. В настоящее время я использую hash_pbkdf2, который, как я понимаю, является наиболее безопасной формой хеширования на данный момент, но он не выводит строку со специальными символами только в верхнем и нижнем регистре. Есть ли способ изменить его, чтобы сделать так, или есть другой алгоритм, который будет работать лучше? Может быть, если бы я объединил это с другим алгоритмом шифрования, который бы затем взял вывод hash_pbkdf2 и зашифровал бы его чем-то специальным символом?

0

Решение

Если вы используете его для хеширования паролей, чтобы хранить их password_hash () (http://php.net/manual/en/function.password-hash.php) или склеп () (http://php.net/manual/en/function.crypt.php) лучше подходят

1

Другие решения

hash_pbkdf2() выводит шестнадцатеричный кодированный результат по умолчанию. Вы можете пройти в true в качестве шестого аргумента функции, чтобы получить необработанный двоичный вывод, но затем вы получите непечатаемые символы.

Если вы заинтересованы в получении только печатных символов, вы можете попробовать закодировать результат, изменив основание с 16 (шестнадцатеричное) на 94 (все печатные символы ASCII). Вот пример кода.

0

Вы можете использовать это:

$input = "YourPassword";
$EncryptionKey = "sFdhgdvDRg4353FDgdfg";

$encrypted = EncryptIt( $input);

echo "Encrypted: " . EncryptIt( $input ) . "<br/>";
echo "Decrypted: ". DecryptIt( $encrypted );



function EncryptIt( $q ) {
$cryptKey  = $EncryptionKey;
$qEncoded      = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5(         $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
return( $qEncoded );
}

function DecryptIt( $q ) {
$cryptKey  = $EncryptionKey;
$qDecoded      = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), base64_decode( $q ), MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ), "\0");
return( $qDecoded );
}
-2
По вопросам рекламы [email protected]