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

Генериране на потребителска парола за postgresql

Хешът на паролата на Postgres е много близо до това, което сте направили, просто трябва да бъде включено потребителското име, както следва:

 pghash = "md5" + hashlib.md5(password + username).hexdigest()

AFAIK, документите на postgres всъщност изобщо не документират този хеш формат и изглежда предполагат, че администраторите рядко ще се занимават директно с тези хешове :( Няма вградени методи за генериране на тези хешове, за които знам. Ако паролата е предоставена на ALTER USER командата не отговаря на хеш формата на postgres, предполага, че паролата не е хеширана и се грижи за това вътрешно - според документите за ключовата дума ENCRYPTED на CREATE ROLE. (IMHO това е погрешно поведение, защото ако хешът зависи от потребителското име, това означава, че хешовете не могат да се копират и поставят между различни акаунти, прекъсват, когато акаунтът се преименува и (отгатвайки ентропийно) има само ~6 бита от ефективна сол).

Предупреждението в горната част на документацията на passlib за хеша вероятно може да бъде по-ясно. Имаше за цел да предупреди хората, които разглеждат документацията на passlib, че 1) този хеш е ужасно несигурен, 2) че не трябва да го приемат за използване в собствените си приложения и 3) че е подходящ само за целите на работа с потребителски акаунти на postgres, тъй като това е най-силният (и единствен) хеш формат, който Postgres поддържа за собствените си акаунти.

(Ако се опитвате да използвате postgres за хеширане на пароли за потребителските акаунти на вашето собствено приложение, аз силно подкрепям препоръката на Clodoaldo да използвате bcrypt чрез разширението pgcrypto).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да приложим връзка много към много в PostgreSQL?

  2. Как да надстроите PostgreSQL 11 до PostgreSQL 12 с нулев престой

  3. Какъв тип клеймо за дата да избера в PostgreSQL база данни?

  4. Как мога да предотвратя Postgres да вмъква подзаявка?

  5. Не мога да инсталирам pg gem на Mountain Lion