Qatt m'għandek iżżomm password f'test sempliċi waqt li tikkonferma utent jew tagħmel xi ħaġa simili.
Peress li ħafna individwi jużaw l-istess password, jekk attakkant jiskopri database ta 'passwords mhux ikkodifikati, jistgħu faċilment jintużaw flimkien ma' emails li jaqblu biex jidħlu fil-websajt jew kont konness u saħansitra jintużaw biex jippruvaw jaċċessaw kontijiet oħra.
Il-passwords ħafna drabi jiġu hashed illum meta tiġi pprovduta password. Huwa rrakkomandat li tagħmel hash bil-melħ u żżomm il-melħ flimkien mal-password hashed.
It-tmelliħ jista 'jidher bħala wieħed mill-passi f'riċetta għall-kannella tal-hash, iżda fil-kriptografija, jirreferi għaż-żieda ta' dejta każwali mal-input ta 'funzjoni hash biex jiġi żgurat li l-hash dejjem jipprovdi riżultat uniku anki jekk l-inputs huma identiċi.
Bħala riżultat, il-hash distintiv maħluq billi żżid il-melħ jista 'jiddefendina minn diversi metodi ta' attakk, inklużi attakki ta 'hash table, filwaqt li joħnoq dizzjunarju u tentattivi offline ta' forza bruta.
Hawnhekk, bl-għajnuna ta' snippets tal-kodiċi, aħna ser nuru kif tuża 'bcrypt' biex tiżgura l-passwords tiegħek.
Allura, x'inhu 'bcrypt'?
Bcrypt hija librerija tal-hashing li tappoġġja diversi lingwi u tipprovdi kriptaġġ speċjali tal-password. Biex tiżdied is-sigurtà tal-password tiegħek, awtomatikament tipproduċi karattri każwali addizzjonali (melħ) meta tikkodifika l-istring tiegħek.
Tista' wkoll tagħżel li tiddefinixxi kemm-il karattri addizzjonali tixtieq iżżid ma' sekwenza li tkun deħlin.
Il-librerija bcrypt taqra biss byte code, mhux strings mhux maħduma. Għalhekk, qabel ma tissottometti string ta 'password deħlin lil bcrypt għall-encryption, l-ewwel trid tikkodifikaha.
Encrypting u encoding mhumiex l-istess affarijiet. Jiżgura biss li sekwenza tinqara mill-magna qabel ma tiġi mgħottija b'teknika ta' encryption.
L-użu ta 'bcrypt biex Ikkodifika Password f'Python
Python jagħmel il-kriptaġġ tal-password bcrypt sempliċi. Aħna ser nikkonċentraw biex nagħmlu dan mingħajr l-għajnuna ta 'qafas. Imma tinkwetax, jekk tifhem kif tiffranka l-inputs tal-utent u taqrahom mid-database, il-proċedura hija l-istess fl-oqfsa.
installazzjoni
Għandek bżonn biss li twaqqaf ambjent virtwali Python u mbagħad tutilizza IDE bħal PyCharm. Imbagħad il-librerija trid tiġi installata l-ewwel:
Encrypting password
Ejja naraw kif tuża bcrypt biex tikkodifika test wara li jkun ġie installat:
Il-kodiċi Python msemmi hawn fuq jesegwixxi u joħroġ string byte kriptat. Imma kull darba li tmexxi l-iskrittura, ir-riżultat huwa differenti. Bcrypt juża dan il-metodu biex jiżgura li kull utent ikollu password li hija speċifikament encrypted.
Dak, inċidentalment, huwa għall-kriptaġġ tal-password.
Tqabbil u Konferma tal-Password Bl-użu ta' Bcrypt
X'jiġri jekk tixtieq tissejvja l-password hashed u tiċċekkja aktar tard biex tara jekk taqbilx mal-password li utent ressaq għall-awtentikazzjoni?
Dak hu sempliċi. Il-password ta' awtentikazzjoni biss trid titqabbel mad-dħul tad-database (jew fil-memorja f'dan il-każ).
Il-password ta' awtentikazzjoni trid tiġi kkodifikata wkoll qabel ma titqabbel ma' dik fid-database minħabba li bcrypt jista' jaqra biss strings ta' byte. Bażikament, int ser tqabbel input ta' awtentikazzjoni kodifikata mal-password hashed kodifikata li għandek bħalissa fid-database tiegħek.
Ejja nittestjaw dan billi nużaw inputs fittizji ta' Python:
Meta tħaddem il-kodiċi msemmi hawn fuq, inti mitlub għal password ġdida. Dan huwa salvat fil-memorja minn Python. Fit-taqsima tal-awtentikazzjoni, imbagħad iddaħħal l-istess password, li hija privata għalik.
Jekk titqabbel il-password u dik li qabel kienet encrypted u ssejvjata l-logħba, Python jarmi messaġġ ta 'suċċess.
Jekk le, il-messaġġ ta 'żball jiġi stampat u mbagħad tiżdied is-sentenza l-oħra.
L-idea fundamentali hija identika għal dik li tirreġistra u mbagħad tipprovdi password għal database għall-awtentikazzjoni.
konklużjoni
Anke filwaqt li sempliċement użajna passwords encrypted biex nuru kif bcrypt jiffunzjona fil-memorja qasira sempliċi ta 'Python, l-applikabilità attwali tagħha tinsab f'apps ta' bażi għall-utent.
Madankollu, dan l-artikolu juri l-metodi essenzjali biex torganizza l-kodiċi tiegħek biex twettaq dan, anke f'ċirkostanzi tad-dinja reali.
Pereżempju, jekk qed tuża Flask, tista' tipprovdi l-oqsma ta' reġistrazzjoni u awtentikazzjoni permezz ta' formoli tal-web separati minflok inputs.
Naturalment, waqt li tqabbel il-passwords, int ser taqra minn database li fiha passwords kriptati li jinżammu fid-dinja reali.
Jona Nitsch
Grazzi għal din l-ispjegazzjoni sempliċi u sempliċi,
Dan għenni ħafna fil-proġett attwali tiegħi.
Naħseb li huwa tajjeb ħafna li l-kodiċi eżempju huwa limitat għall-minimu u mhux mgħobbi żżejjed bħal ħafna spjegazzjonijiet oħra.
Aħjar fir-rigward