Anjeun teu kedah nyimpen kecap akses dina plaintext nalika ngonfirmasi pangguna atanapi ngalakukeun hal anu sami.
Kusabab seueur jalma anu nganggo kecap konci anu sami, upami panyerang mendakan pangkalan data kecap konci anu henteu énkripsi, aranjeunna tiasa gampang dianggo babarengan sareng email anu cocog pikeun lebet kana halaman wéb atanapi akun anu dikaitkeun sareng malah dianggo pikeun nyobian ngaksés akun anu sanés.
Kecap akses sering di-hashed ayeuna nalika kecap akses disayogikeun. Disarankeun Hash sareng uyah sareng tetep uyah sareng kecap konci anu hashed.
Salting sigana sapertos salah sahiji léngkah dina resep coklat hash, tapi dina kriptografi, éta nujul kana nambihan data acak kana input fungsi hash pikeun mastikeun yén hash bakal salawasna masihan hasil anu unik sanajan inputna sami.
Hasilna, hash has anu diciptakeun ku nambihan uyah tiasa ngajagi urang tina sababaraha metode serangan, kalebet serangan tabel hash, bari ngahalangan kamus sareng usaha offline-brute-force.
Di dieu, kalayan bantosan snippét kode, kami bakal nunjukkeun kumaha ngagunakeun 'bcrypt' pikeun ngamankeun kecap konci anjeun.
Janten, naon 'bcrypt'?
Bcrypt mangrupikeun perpustakaan hashing anu ngadukung sababaraha basa sareng nyayogikeun enkripsi sandi khusus. Pikeun ningkatkeun kaamanan sandi anjeun, éta otomatis ngahasilkeun karakter acak tambahan (uyah) nalika énkripsi senar anjeun.
Anjeun oge bisa milih pikeun nangtukeun sabaraha karakter tambahan nu Anjeun hoyong tambahkeun kana string asup.
Perpustakaan bcrypt ngan maca kode bait, sanés string atah. Ku alatan éta, saméméh ngirimkeun string sandi asup ka bcrypt pikeun enkripsi, Anjeun kudu encode heula.
Énkripsi sareng encoding sanés hal anu sami. Éta ngan ukur mastikeun yén string tiasa dibaca ku mesin sateuacan ditutupan ku téknik enkripsi.
Ngagunakeun bcrypt mun Encrypt a Sandi dina Python
Python ngajadikeun enkripsi sandi bcrypt basajan. Kami bakal konsentrasi dina ngalakukeun ieu tanpa bantosan kerangka. Tapi tong hariwang, upami anjeun ngartos kumaha nyimpen input pangguna sareng maca tina pangkalan data, prosedurna sami dina kerangka.
parabot nu geus dipasang di tempatna sarta sadia dipake
Anjeun ngan ukur kedah nyetél lingkungan virtual Python teras nganggo IDE sapertos PyCharm. Perpustakaan teras kedah dipasang heula:
Énkripsi sandi
Hayu urang tingali kumaha ngagunakeun bcrypt pikeun énkripsi téks saatos dipasang:
Kodeu Python anu disebut tadi ngajalankeun sarta outputs string bait énkripsi. Tapi unggal waktos anjeun ngajalankeun naskah, hasilna béda. Bcrypt nganggo metodeu ieu pikeun mastikeun unggal pangguna ngagaduhan kecap konci anu énkripsi khusus.
Éta, saliwatan, pikeun énkripsi sandi.
Sandi Babandingan jeung Konfirmasi Ngagunakeun Bcrypt
Naon anu kajantenan upami anjeun hoyong nyimpen kecap konci anu hashed sareng pariksa engké pikeun ningali naha éta cocog sareng kecap konci anu dikintunkeun ku pangguna pikeun auténtikasi?
Éta basajan. Ngan kecap akses auténtikasi anu kedah dibandingkeun sareng éntri pangkalan data (atanapi dina mémori dina hal ieu).
Sandi auténtikasi ogé kedah disandi sateuacan dibandingkeun sareng anu aya dina pangkalan data sabab bcrypt ngan ukur tiasa maca senar bait. Dasarna, anjeun bakal ngabandingkeun input auténtikasi disandikeun kana sandi hash disandikeun ayeuna anjeun gaduh dina database anjeun.
Hayu urang nguji ieu ku ngagunakeun input Python fiktif:
Saatos ngajalankeun kodeu anu disebatkeun tadi, anjeun dipenta pikeun kecap akses anyar. Ieu disimpen dina mémori ku Python. Dina bagian auténtikasi, anjeun teras bakal ngalebetkeun kecap konci anu sami, anu pribadi pikeun anjeun.
Upami kecap konci dibandingkeun sareng anu sateuacana énkripsi sareng disimpen pertandingan, Python ngaluarkeun pesen anu suksés.
Upami henteu, pesen kasalahan dicitak teras kalimat anu sanésna ditambah.
Gagasan dasarna sami sareng anu ngadaptarkeun teras nyayogikeun kecap konci kana pangkalan data pikeun auténtikasi.
kacindekan
Sanaos urang ngan saukur nganggo kecap konci énkripsi pikeun nunjukkeun kumaha bcrypt fungsina dina mémori pondok Python biasa, aplikasina saleresna aya dina aplikasi basis pangguna.
Nanging, tulisan ieu nunjukkeun metode penting pikeun ngatur kode anjeun pikeun ngalaksanakeun ieu, bahkan dina kaayaan dunya nyata.
Salaku conto, upami anjeun nganggo Flask, anjeun tiasa nyayogikeun widang pendaptaran sareng auténtikasi ngalangkungan formulir wéb anu misah tibatan input.
Tangtosna, nalika ngabandingkeun kecap akses, anjeun bakal maca tina pangkalan data anu ngandung kecap konci énkripsi anu disimpen di dunya nyata.
Jona Nitsch
Hatur nuhun pikeun katerangan anu sederhana sareng sederhana ieu,
Ieu ngabantuan kuring pisan dina proyék kuring ayeuna.
Jigana éta pohara alus yén kode conto ieu dugi ka minimum bulistir teu overloaded kawas kitu loba katerangan séjén.
Salam hormat