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

Какви са слабите страни на този метод за удостоверяване на потребителя?

Направете си услуга и използвайте стандартна библиотека за хеширане на вашите пароли.

Тъй като сигурността обикновено е много по-сложна и с по-невидими възможности за прецакане, отколкото повечето програмисти биха могли да се справят сами, използването на стандартна библиотека почти винаги е най-лесната и най-сигурната (ако не и единствената) налична опция.

Стандартната библиотека :
Разгледайте:Преносима PHP рамка за хеширане на пароли :phpass и се уверете, че използвате CRYPT_BLOWFISH алгоритъм, ако изобщо е възможно.

пример за код, използващ phpass (v0.2):

require('PasswordHash.php');

$pwdHasher = new PasswordHash(8, FALSE);

// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );

// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

PHPass е внедрен в някои доста известни проекти:

  • phpBB3
  • WordPress 2.5+, както и bbPress
  • изданието на Drupal 7 (модулът е наличен за Drupal 5 и 6)
  • други

Хубавото е, че не е нужно да се притеснявате за подробностите, тези подробности са програмирани от хора с опит и прегледани от много хора в интернет.

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

В момента се използва crypt , с CRYPT_BLOWFISH е най-добрата практика.
CRYPT_BLOWFISH в PHP е реализация на хеша Bcrypt. Bcrypt се основава на блоковия шифър Blowfish, използвайки скъпата настройка на ключовете за забавяне на алгоритъма.

За повече информация относно схемите за съхранение на пароли можете също да прочетете Jeff Публикация в блога за това:Вероятно съхранявате пароли неправилно



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функцията hour() на Hive връща 12-часова стойност на часовника

  2. SQLAlchemy принуди in_() да използва литерали

  3. Защо Entity Framework генерира вложени SQL заявки?

  4. SQL низ за поръчка като число

  5. Версията на php-mysql е в конфликт с Mysql сървъра