Enkripsi kata sandi menutupi kata sandi pengguna sehingga sulit ditebak atau didekodekan. Ini adalah langkah penting dalam mengembangkan perangkat lunak berbasis pengguna yang aman. Baik Anda sedang membangun satu dengan Flask atau Kerangka Python ringan lainnya, Anda tidak dapat mengabaikan langkah itu. Di situlah bcrypt masuk.

Kami akan menunjukkan cara menggunakan bcrypt untuk meng-hash kata sandi Anda dengan Python.

Bagaimana bcrypt Bekerja

Bcrypt adalah pustaka hashing agnostik bahasa yang menawarkan enkripsi kata sandi yang unik. Saat mengenkripsi string Anda, ini menghasilkan karakter acak ekstra (garam) secara default untuk meningkatkan keamanan kata sandi Anda.

Secara opsional, Anda juga dapat menentukan jumlah karakter tambahan yang ingin Anda tambahkan ke string yang masuk.

Pustaka bcrypt tidak membaca string mentah—hanya kode byte. Jadi untuk memulai, pertama-tama Anda akan menyandikan string kata sandi yang masuk sebelum meneruskannya ke bcrypt untuk dienkripsi.

Encoding tidak sama dengan enkripsi. Ini hanya memastikan bahwa string menjadi dapat dibaca mesin sebelum algoritma enkripsi dapat menutupinya.

instagram viewer

Mengenkripsi Kata Sandi dengan Python Dengan bcrypt

enkripsi kata sandi bcrypt mudah dilakukan dengan Python. Kami akan fokus pada bagaimana melakukan ini tanpa menggunakan kerangka kerja. Tapi jangan khawatir, ini mengikuti proses yang sama dalam kerangka kerja setelah Anda tahu cara menyimpan input pengguna Anda dan membacanya dari database.

Instal dan Siapkan bcrypt

Jika Anda belum melakukannya, aktifkan lingkungan virtual Python di root proyek Anda. Kemudian instal bcrypt menggunakan pip:

pip instal bcrpyt

Mulai Enkripsi Kata Sandi

Setelah terinstal, mari kita lihat cara mengenkripsi string menggunakan bcrypt:

# Impor bcrypt:
impor bcrypt
kata sandi = "string kata sandi saya"
# Enkode kata sandi menjadi kode byte utf-8 yang dapat dibaca:
kata sandi = kata sandi.encode('utf-8')
# Hash kata sandi yang dikodekan dan hasilkan garam:
hashedPassword = bcrypt.hashpw (kata sandi, bcrypt.gensalt())
cetak (hashPassword)

ketika kamu jalankan kode Python di atas, ia mencetak string byte terenkripsi. Outputnya, bagaimanapun, berubah setiap kali Anda menjalankan skrip. Beginilah cara bcrypt memastikan setiap pengguna memiliki kata sandi terenkripsi yang unik.

Itu untuk enkripsi kata sandi, omong-omong.

Bagaimana Membandingkan dan Mengonfirmasi Kata Sandi Dengan bcrypt

Bagaimana jika Anda ingin menyimpan kata sandi yang di-hash dan mengonfirmasi nanti bahwa itu cocok dengan kata sandi yang diberikan pengguna selama otentikasi?

Itu mudah. Anda hanya perlu membandingkan kata sandi otentikasi dengan yang disimpan dalam database (atau dalam memori dalam kasus ini).

Dan karena bcrypt hanya membaca string byte, Anda juga harus menyandikan kata sandi otentikasi sebelum membandingkannya dengan yang ada di database. Intinya, Anda akan memeriksa silang input autentikasi yang disandikan dengan kata sandi hash yang telah disimpan di database Anda.

Menggunakan input Python dummy, mari kita lihat cara kerjanya dalam praktik:

impor bcrypt
#simpan kata sandi Anda:
kata sandi = str(input("masukkan kata sandi: "))
# Encode kata sandi yang disimpan:
kata sandi = kata sandi.encode('utf-8')
# Enkripsi kata sandi yang disimpan:
hash = bcrypt.hashpw (kata sandi, bcrypt.gensalt (10))
# Buat bidang input kata sandi otentikasi untuk memeriksa apakah pengguna memasukkan kata sandi yang benar:
periksa = str(input("periksa kata sandi: "))
# Encode kata sandi otentikasi juga:
cek = cek.encode('utf-8')
# Gunakan kondisi untuk membandingkan kata sandi otentikasi dengan yang disimpan:
jika bcrypt.checkpw (periksa, hash):
print("login berhasil")
lain:
print("Password salah")

Kode di atas meminta Anda untuk memasukkan kata sandi baru saat Anda menjalankannya. Python menyimpan ini di memori. Anda kemudian akan memberikan kata sandi yang sama (hanya diketahui oleh Anda) di bidang otentikasi.

Python mencetak pesan sukses jika kata sandi yang dibandingkan cocok dengan kata sandi terenkripsi yang disimpan sebelumnya. Jika tidak, itu akan menampilkan pesan gagal yang dibungkus dengan lain penyataan:

Seluruh konsepnya sama dengan menyimpan kata sandi dalam database selama pendaftaran dan memberikannya nanti selama otentikasi.

Tingkatkan Enkripsi Dengan bcrypt

Meskipun kami hanya mendemonstrasikan cara kerja bcrypt dengan menyimpan kata sandi terenkripsi ke dalam memori pendek Python biasa, penggunaan utamanya adalah dalam aplikasi basis pengguna kehidupan nyata.

Meskipun demikian, tutorial ini menunjukkan cara mendasar untuk menyusun kode Anda untuk mencapai hal ini, bahkan dalam skenario kehidupan nyata. Misalnya, jika Anda menggunakan Flask, Anda dapat mengganti input dengan formulir web terpisah untuk melayani bidang pendaftaran dan otentikasi. Dan tentu saja, Anda akan menyimpan kata sandi terenkripsi dalam database kehidupan nyata dan membacanya saat membandingkan kata sandi.

12 Istilah Enkripsi Dasar Yang Harus Diketahui Semua Orang Sekarang

Semua orang berbicara tentang enkripsi, tetapi menemukan diri Anda tersesat atau bingung? Berikut adalah beberapa istilah enkripsi utama yang perlu Anda ketahui.

Baca Selanjutnya

MembagikanMenciakSurel
Topik-topik yang berkaitan
  • Pemrograman
  • Python
  • Pemrograman
  • Keamanan
Tentang Penulis
Idowu Omisola (116 Artikel Diterbitkan)

Idowu sangat menyukai teknologi dan produktivitas yang cerdas. Di waktu luangnya, dia bermain-main dengan coding dan beralih ke papan catur ketika dia bosan, tetapi dia juga suka melepaskan diri dari rutinitas sesekali. Semangatnya untuk menunjukkan kepada orang-orang tentang teknologi modern memotivasinya untuk menulis lebih banyak.

More From Idowu Omisola

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan