PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Membuat kata sandi pengguna postgresql

Hash kata sandi Postgres sangat mirip dengan yang Anda lakukan, hanya perlu memasukkan nama pengguna sebagai berikut:

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

AFAIK, dokumen postgres tidak benar-benar mendokumentasikan format hash ini sama sekali, dan tampaknya menganggap admin jarang menangani hash ini secara langsung :( Tidak ada metode bawaan untuk menghasilkan hash ini yang saya ketahui. Jika kata sandi diberikan ke ALTER USER perintah tidak sesuai dengan format hash postgres, itu mengasumsikan kata sandi belum di-hash, dan menanganinya secara internal - sesuai dokumen untuk kata kunci CREATE ROLE's ENCRYPTED. (IMHO ini adalah perilaku yang cacat, karena jika hash bergantung pada nama pengguna, itu berarti hash tidak dapat disalin dan ditempelkan di antara akun yang berbeda, rusak ketika akun diganti namanya, dan (menebak entropi bijaksana) hanya memiliki ~ 6 bit garam efektif).

Peringatan di bagian atas dokumentasi passlib untuk hash mungkin bisa lebih jelas. Itu dimaksudkan untuk memperingatkan orang-orang yang menelusuri dokumentasi passlib bahwa 1) hash ini sangat tidak aman, 2) bahwa mereka tidak boleh mengadopsinya untuk digunakan dalam aplikasi mereka sendiri, dan 3) bahwa itu hanya cocok untuk tujuan bekerja dengan akun pengguna postgres, karena ini adalah format hash terkuat (dan satu-satunya) yang didukung postgres untuk akunnya sendiri.

(Jika Anda mencoba menggunakan postgres untuk meng-hash kata sandi untuk akun pengguna aplikasi Anda sendiri, saya sangat mendukung rekomendasi Clodoaldo untuk menggunakan bcrypt melalui ekstensi 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 'TIDAK DALAM' dan subquery

  2. Kurangi jam dari fungsi now()

  3. Bisakah PostgreSQL memiliki batasan keunikan pada elemen array?

  4. Bagaimana cara menggunakan tipe data Postgres JSONB dengan JPA?

  5. memperbarui baris tabel di postgres menggunakan subquery