Bab lan Paragraf[Singidaken][Tampilake]
Sampeyan ora kudu nyimpen tembung sandhi ing plaintext nalika ngonfirmasi pangguna utawa nindakake sing padha.
Amarga akeh wong sing nggunakake tembung sandhi sing padha, yen panyerang nemokake basis data sandhi sing ora dienkripsi, bisa uga gampang digunakake bebarengan karo email sing cocog kanggo mlebu menyang situs web utawa akun sing disambung lan malah digunakake kanggo nyoba ngakses akun liyane.
Sandi asring digesek saiki nalika sandhi diwenehake. Disaranake kanggo hash karo uyah lan tetep uyah bebarengan karo sandhi hash.
Salting bisa uga katon kaya salah siji langkah ing resep kanggo hash browns, nanging ing kriptografi, iki nuduhake nambahake data acak menyang input fungsi hash kanggo mesthekake yen hash bakal tansah menehi asil unik sanajan input padha.
Akibaté, hash khas sing digawe kanthi nambah uyah bisa mbela kita saka sawetara cara serangan, kalebu serangan tabel hash, nalika ngalangi kamus lan upaya offline brute-force.
Ing kene, kanthi bantuan potongan kode, kita bakal nuduhake carane nggunakake 'bcrypt' kanggo ngamanake sandhi.
Dadi, apa 'bcrypt'?
Bcrypt minangka perpustakaan hashing sing ndhukung sawetara basa lan nyedhiyakake enkripsi sandhi khusus. Kanggo nambah keamanan sandhi, kanthi otomatis ngasilake karakter acak tambahan (uyah) nalika ndhelik senar.
Sampeyan uga bisa milih kanggo nemtokake jumlah karakter tambahan sing pengin ditambahake menyang string sing mlebu.
Pustaka bcrypt mung maca kode byte, ora strings mentah. Mula, sadurunge ngirim string sandi sing mlebu kanggo bcrypt kanggo enkripsi, sampeyan kudu ngodhe dhisik.
Enkripsi lan enkoding dudu perkara sing padha. Iku mung nggawe manawa string bisa diwaca mesin sadurunge ditutupi dening teknik enkripsi.
Nggunakake bcrypt kanggo Encrypt sandhi ing Python
Python ndadekake enkripsi sandhi bcrypt prasaja. Kita bakal konsentrasi nindakake iki tanpa bantuan kerangka. Nanging aja kuwatir, yen sampeyan ngerti carane nyimpen input pangguna lan maca saka database, prosedur kasebut padha ing kerangka kerja.
instalasi
Sampeyan mung kudu nyiyapake lingkungan virtual Python banjur gunakake IDE kaya PyCharm. Pustaka banjur kudu diinstal dhisik:
Enkripsi sandhi
Ayo ndeleng carane nggunakake bcrypt kanggo ndhelik teks sawise wis diinstal:
Kode Python kasebut nglakokake lan ngasilake string byte sing dienkripsi. Nanging saben sampeyan mbukak script, asil beda. Bcrypt nggunakake metode iki kanggo mesthekake saben pangguna duwe sandhi sing dienkripsi khusus.
Sing, satleraman, kanggo enkripsi sandi.
Sandi Comparison lan Konfirmasi Nggunakake Bcrypt
Apa sing kedadeyan yen sampeyan pengin nyimpen tembung sandhi sing hash lan mriksa mengko kanggo ndeleng apa cocog karo tembung sandhi sing dikirim pangguna kanggo otentikasi?
Sing prasaja. Mung sandhi otentikasi kudu dibandhingake karo entri database (utawa ing memori ing kasus iki).
Sandi otentikasi uga kudu dienkode sadurunge dibandhingake karo sing ana ing basis data amarga bcrypt mung bisa maca string byte. Sejatine, sampeyan bakal mbandhingake input otentikasi sing dienkode karo tembung sandi hash sing dienkode sing saiki ana ing database sampeyan.
Ayo nyoba iki kanthi nggunakake input Python fiktif:
Sawise mbukak kode kasebut, sampeyan bakal dijaluk sandhi anyar. Iki disimpen ing memori dening Python. Ing bagean otentikasi, sampeyan bakal ngetik sandhi sing padha, sing pribadi kanggo sampeyan.
Yen sandhi dibandhingake lan siji sing sadurunge ndhelik lan disimpen match, Python emits pesen sukses.
Yen ora, pesen kesalahan dicithak banjur ukara liyane ditambahake.
Ide dhasar identik karo ndhaptar banjur menehi sandhi menyang database kanggo otentikasi.
kesimpulan
Sanajan kita mung nggunakake tembung sandhi sing ndhelik kanggo nuduhake carane bcrypt bisa digunakake ing memori singkat Python, aplikasi sing bener ana ing aplikasi basis pangguna.
Nanging, artikel iki nduduhake cara penting kanggo ngatur kode sampeyan kanggo ngrampungake iki, sanajan ing kahanan nyata.
Contone, yen sampeyan nggunakake Flask, sampeyan bisa nyedhiyani kolom registrasi lan otentikasi liwat formulir web sing kapisah tinimbang input.
Mesthi, nalika mbandhingake tembung sandhi, sampeyan bakal maca saka database sing ngemot tembung sandhi sing dienkripsi sing disimpen ing jagad nyata.
Jona Nitsch
Matur nuwun kanggo panjelasan sing prasaja lan prasaja iki,
Iki mbantu aku akeh ing proyekku saiki.
Aku iku apik banget yen kode conto diwatesi kanggo minimal Bare lan ora overloaded kaya akeh panjelasan liyane.
Best regards