PDA

Просмотр полной версии : [Вопрос] Хеширование пароля



TBoPoIIIoK
23.07.2016, 12:11
Хай всем, пишу мод с 0 и тут встал вопрос - хеширования пароля, решил использовать стандартную функцию, но так как в последующем буду делать ucp, то хотелось бы узнать... каким образом данная функция SHA256_PassHash(password[], salt[], ret_hash[], ret_hash_len) будет выглядеть в php ?

TheMallard
23.07.2016, 12:13
Функция hash?

TBoPoIIIoK
23.07.2016, 12:14
Функция hash?

Знаю про нее, но каким образом в сампе клеится соль к паролю ?

123
23.07.2016, 13:14
Примерно так:

<?php
$salt = '78sdjs86d2h';
$password = 'teste';
$hash1 = hash('sha256', $password . $salt);
echo $hash1;
?>

В этом нет ничего сложного.

Processing
23.07.2016, 13:42
На форуме есть удобный инструмент "Поиск" :hi:

1. http://pro-pawn.ru/showthread.php?12486-SHA256_PassHash&highlight=sha256

2.
Думаю у многих возникнет вопрос, как проверить введенный пароль на сайте при авторизации в ucp, который конфигурирует с сервером mysql, в котором записана строка с паролем в виде хэш суммы.



<?php
/**
* $password = пароль введенный в input поле при авторизации (используется метод POST)
* $salt = используемая соль. если соль у всех аккаунтов разная, получаем ее значение sql запросом.
* $hashed = получаем так сказать засоленную хэш сумму
* $hash = сюда заносим хэш сумму из базы данных так же sql запросом
* strcasecp = бинарное сравнение строк без учета регистра
*/

$password = $_POST['password'];
$salt = 'ZGxt3MSEE'; //запишу соль (для примера)
$hashed = hash('sha256', $password . $salt);
$hash = '1AEDF41427A95F6A041E2FF8C0F50B4E6ADC97F2EA6B5863E5FBC42CA3287310'; //наша хэш сумма из бд (для примера)
if (strcasecmp($hashed, $hash) == 0) {
//пароль верный, выполняем нужные действия
}
else {
//выводим сообщение о неверном пароле
}
?>