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

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

Не използвайте SHA1 или SHA256 , както предполагат повечето други хора. Категорично не използвайте MD5 .

SHA1/256 и MD5 са проектирани да създават контролни суми на файлове и низове (и други типове данни, ако е необходимо). Поради това те са проектирани да бъдат възможно най-бързи, така че контролната сума да се генерира бързо.

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

Вместо това използвайте бавен алгоритъм, който е специално разработен за пароли. Те са проектирани да отнемат малко повече време за генериране, като предимството е, че bruteforce атаките стават много по-трудни. Поради това паролите ще бъдат много по-сигурни.

Няма да изпитате значителни недостатъци в производителността, ако търсите само криптиране на отделни пароли една по една, което е нормалното изпълнение на съхраняването и проверката на пароли. Истинската разлика е само в насипно състояние.

Аз лично харесвам bcrypt. Трябва да има налична версия на Perl, тъй като бързото търсене в Google даде няколко възможни съвпадения.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво означава %% в PL/pgSQL?

  2. HikariCP - връзката не е налична

  3. Какъв точно оператор за сравнение между `bigint` и `date` в postgresql?

  4. HikariPool-1 - Неуспешно валидиране на връзката [имейл защитен] (Тази връзка е затворена.)

  5. sqlalchemy създава VIEW с ORM