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

Генериране на сол Crypt() и криптиране на парола, добре изпълнени?

Има някои точки, които могат да бъдат подобрени, но първо бих препоръчал да използвате новата функция на PHP password_hash() . Тази функция ще генерира безопасна сол и ще я включи в получената хеш-стойност, така че можете да я съхранявате в едно поле на базата данни. Съществува и пакет за съвместимост за по-ранни версии.

// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_BCRYPT);

// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);

Някои мисли за вашия код:

  1. Генерирате BCrypt хеш с crypt(), така че солта ще бъде част от получения хеш. Не е необходимо да го съхранявате отделно.
  2. Производството на солта може да се подобри, използвайте произволния източник на операционната система MCRYPT_DEV_URANDOM.
  3. Ако промените коефициента на разходите на 9, форматът ще стане невалиден, тъй като crypt очаква две цифри.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Значението на дължината на varchar в таблицата на MySQL

  2. актуализиране на таблицата с данни от друга таблица, ако не е нула?

  3. 15 основни въпроса за интервю за MySQL за администратори на бази данни

  4. Hibernate OnDelete Cascade не работи за MySql, но работи на postgres и Ms-Sql

  5. SQLite и поръчка по поръчка по