Mysql
 sql >> база данни >  >> RDS >> Mysql

Хеширането на парола с помощта на crypt не работи при влизане, показва неправилен пропуск

При регистрация създавате уникална сол. Тази сол вече е част от хаша. Ако се вгледате внимателно, ще видите, че е вграден в първата част на хеша. За да проверите паролата, използвайте солта на предишната хеширана парола, така че отново използвате същата сол.

$correctPasswordHash = getPasswordFromDatabase($_POST['username']);
$hash = crypt($_POST['password'], $correctPasswordHash);

if ($correctPasswordHash === $hash) ...

За да направите това по-лесно и по-безопасно, използвайте библиотеката password_compat , който обгръща това в лесен за използване API, който също ще бъде интегриран в бъдеща версия на PHP. Проверете неговия изходен код за правилното използване на crypt , тъй като има някои подводни камъни, за които трябва да се погрижите. Библиотеката password_compat също използва персонализирано двоично сравнение вместо просто === за да осуетите атаките за определяне на времето.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Втора заявка SELECT, ако първата SELECT връща 0 реда

  2. Комбинирайте множество дъщерни реда в един ред MYSQL

  3. Как да групирате по месец в MySQL

  4. генериране на enum клас от таблица с JOOQ

  5. Как да изтриете редове от три таблици - грешка в заявката