Как получить хэш пароля в бд такого рода? Приветствую. Нужно сохранить пароль в (mysql) таком виде:sha1:1000:oNsMooGkvbmtYx7g118FdIRyuMElA4vL:1izkAXExj6he6ARrH3K+srXxemvL15/0 Искал в гугле, ничего не нашел. Если не сложно, прямо носом тычьте.
Для хеширования пароля в формате, который вы указали (sha1:1000:hash:salt:stretch), вы можете использовать следующий код на PHP:
$password = 'ваш_пароль'; $salt = random_bytes(16); // генерируем случайную соль $hash = hash_pbkdf2('sha1', $password, $salt, 1000, 64); // хешируем пароль с помощью pbkdf2 $fullHash = 'sha1:1000:' . $hash . ':' . bin2hex($salt); // конкатенируем все данные // сохраняем $fullHash в базу данных
Обратите внимание, что для использования функций hash_pbkdf2 и random_bytes вам потребуется PHP 5.5 и выше.
Также, при проверке пароля при авторизации, вам нужно будет распарсить хеш и соль из строки в базе данных и сравнить полученный хеш с хешем в базе данных.
Для хеширования пароля в формате, который вы указали (sha1:1000:hash:salt:stretch), вы можете использовать следующий код на PHP:
$password = 'ваш_пароль';$salt = random_bytes(16); // генерируем случайную соль
$hash = hash_pbkdf2('sha1', $password, $salt, 1000, 64); // хешируем пароль с помощью pbkdf2
$fullHash = 'sha1:1000:' . $hash . ':' . bin2hex($salt); // конкатенируем все данные
// сохраняем $fullHash в базу данных
Обратите внимание, что для использования функций hash_pbkdf2 и random_bytes вам потребуется PHP 5.5 и выше.
Также, при проверке пароля при авторизации, вам нужно будет распарсить хеш и соль из строки в базе данных и сравнить полученный хеш с хешем в базе данных.