Encode dan Decode Django User Password

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Encode dan Decode Django User Password

Django adalah web framework Python yang didesain untuk membuat aplikasi web dinamis, kaya fitur dan aman.

Django dikembangkan oleh Django Software Foundation. Django terus mendapatkan perbaikan sehingga membuat web framework yang satu ini menjadi pilihan utama bagi banyak pengembang aplikasi web.

Dalam hal keamanan user django framework sudah cukup berpengalaman. Django berupaya untuk menyediakan seperangkat alat yang aman dan fleksibel untuk mengelola kata sandi pengguna.

Dokumen ini menjelaskan


  • bagaimana Django menyimpan kata sandi ?,

  • bagaimana hashing penyimpanan dapat dikonfigurasi ?,

  • dan beberapa utilitas untuk bekerja dengan kata sandi hash.


Django memilih algoritma yang digunakan dengan merujuk pada pengaturan PASSWORD_HASHERS.

PASSWORD_HASHERS adalah daftar kelas algoritma hashing yang didukung oleh instalasi Django.

Entri pertama dalam PASSWORD_HASHERS adalah settings.PASSWORD_HASHERS [0] yang digunakan untuk menyimpan kata sandi, dan semua entri lainnya.

Hashers yang valid dapat digunakan untuk memeriksa kata sandi yang ada.

Ini berarti bahwa jika Anda ingin menggunakan algoritma yang berbeda, Anda harus memodifikasi PASSWORD_HASHERS untuk mendaftarkan algoritma pilihan Anda terlebih dahulu.

Perhatikan kode di bawah ini:

PASSWORD_HASHERS = [
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.Argon2PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
]

 

*** Pertanyaanya sekarang adalah bagaimana jika kita membuat sebuah microservice dengan framework flask dan kita ingin agar user saat login ke microservice tetap bisa menggunakan user password django ?

Solusinya, kita bisa menggunakan library passlib, bagaimana caranya ?.

Sebelum mengikuti tutorial ini pastikan bahwa kamu telah bekerja di mode environment.

A) Step pertama, install passlib dengan pip

pip install passlib

B) Step kedua, import passlib

from passlib.hash import django_pbkdf2_sha256

C) Step ke tiga, copy dari database password yang akan kita decode dan juga buat variable key hasher

hash = 'pbkdf2_sha256$36000$Gxab4u3ekwNT$nMmBLubOGZs9mcegH9fmFrBXPjS2NGG53glzPuRpTG4=' 

user_input = 'Testing1'


 
D) Step ke empat,

django_pbkdf2_sha256.verify(user_input, hash)

Jika semua sukses maka akan menghasil return true seperti dibawah ini:

django hasher halovina

Selanjutnya bagaimana cara untuk mengencode sebuah password, perhatikan kode lengkap di bawah ini :

from passlib.hash import django_pbkdf2_sha256 as handler
hash = 'pbkdf2_sha256$36000$Gxab4u3ekwNT$nMmBLubOGZs9mcegH9fmFrBXPjS2NGG53glzPuRpTG4='
user_input = 'Testing1'

#decode
decode_handler = handler.verify(user_input, hash)
print(decode_handler)

#necode
encode_handler = handler.hash("Testing1")
print(encode_handler)

Baca artikel lainya :