Kinahanglan nga dili ka magtago sa usa ka password sa plaintext samtang nagkumpirma sa usa ka user o nagbuhat og susama.
Tungod kay daghang mga indibidwal ang naggamit sa parehas nga password, kung ang usa ka tig-atake nakadiskubre sa usa ka database sa wala ma-encrypt nga mga password, dali ra silang magamit kauban ang mga katumbas nga email aron makasulod sa na-link nga website o account ug gigamit pa gani sa pagsulay sa pag-access sa ubang mga account.
Ang mga password kanunay nga gi-hash karon kung adunay gihatag nga password. Gitambagan nga mag-hash gamit ang asin ug tipigan ang asin kauban ang gi-hash nga password.
Ang pag-asin mahimong morag usa sa mga lakang sa usa ka resipe alang sa hash browns, apan sa cryptography, kini nagtumong sa pagdugang sa random data sa usa ka hash function's input aron masiguro nga ang hash kanunay maghatag ug usa ka talagsaon nga resulta bisan kung ang mga input parehas.
Ingon usa ka sangputanan, ang lahi nga hash nga gihimo pinaagi sa pagdugang sa asin makapanalipod kanamo gikan sa daghang mga pamaagi sa pag-atake, lakip ang mga pag-atake sa lamesa sa hash, samtang gipugngan ang diksyonaryo ug brute-force offline nga pagsulay.
Dinhi, uban sa tabang sa code snippet, among ipakita kung giunsa paggamit ang 'bcrypt' aron masiguro ang imong mga password.
Busa, unsa ang 'bcrypt'?
Ang Bcrypt usa ka hashing nga librarya nga nagsuporta sa daghang mga pinulongan ug naghatag og espesyal nga pag-encrypt sa password. Aron madugangan ang seguridad sa imong password, awtomatiko kini nga maghimo dugang nga random nga mga karakter (asin) kung gi-encrypt ang imong string.
Mahimo usab nimong pilion ang paghubit kon pila ka dugang nga mga karakter ang gusto nimong idugang sa umaabot nga string.
Ang bcrypt library nagbasa lang sa byte code, dili hilaw nga mga kuwerdas. Busa, sa dili pa mosumiter og umaabot nga password string sa bcrypt para sa encryption, kinahanglan una nimo nga i-encode kini.
Ang pag-encrypt ug pag-encode dili parehas nga mga butang. Gipaneguro lang niini nga ang usa ka hilo mabasa sa makina sa wala pa matabonan sa usa ka teknik sa pag-encrypt.
Paggamit sa bcrypt aron ma-encrypt ang usa ka Password sa Python
Gihimo sa Python nga yano ang pag-encrypt sa password sa bcrypt. Magkonsentrar kami sa pagbuhat niini nga wala’y tabang sa usa ka balangkas. Apan ayaw kabalaka, kung nahibal-an nimo kung giunsa ang pagtipig sa mga input sa gumagamit ug basahon kini gikan sa database, parehas ang pamaagi sa mga balangkas.
Instalar
Kinahanglan ra nimo nga magbutang usa ka virtual nga palibot sa Python ug unya mogamit usa ka IDE sama sa PyCharm. Kinahanglan nga i-install una ang librarya:
Pag-encrypt sa password
Atong tan-awon kon unsaon paggamit ang bcrypt aron ma-encrypt ang usa ka teksto human kini ma-install:
Ang nahisgutang Python code nagpatuman ug nagpagawas ug naka-encrypt nga byte string. Apan sa matag higayon nga modagan ka sa script, lahi ang resulta. Gigamit sa Bcrypt kini nga pamaagi aron masiguro nga ang matag tiggamit adunay password nga espesipikong na-encrypt.
Kana, sa tinuud, alang sa pag-encrypt sa password.
Pagtandi ug Pagkumpirma sa Password Gamit ang Bcrypt
Unsa ang mahitabo kung gusto nimo i-save ang gi-hash nga password ug susihon sa ulahi aron mahibal-an kung kini katugma sa password nga gisumite sa usa ka user alang sa pag-authenticate?
Yano ra. Ang panghimatuud nga password lamang ang kinahanglan itandi sa entry sa database (o sa memorya niini nga kaso).
Ang pag-authenticate nga password kinahanglan usab nga ma-encode sa dili pa itandi sa usa nga naa sa database tungod kay ang bcrypt mahimo ra makabasa sa mga byte string. Kasagaran, imong itandi ang usa ka na-encode nga authentication input sa gi-encode nga hashed nga password nga naa nimo karon sa imong database.
Atong sulayan kini pinaagi sa paggamit sa tinumotumo nga mga input sa Python:
Sa pagdagan sa nahisgutan nga code, giaghat ka alang sa usa ka bag-ong password. Gitipigan kini sa memorya sa Python. Sa seksyon sa pag-authenticate, imong isulod ang parehas nga password, nga pribado kanimo.
Kung ang password gitandi ug ang usa nga kaniadto gi-encrypt ug gitipigan ang posporo, ang Python nagpagawas sa usa ka mensahe sa kalampusan.
Kung dili, ang mensahe sa sayup giimprinta ug dayon ang lain nga sentence idugang.
Ang sukaranan nga ideya parehas sa pagparehistro ug dayon paghatag usa ka password sa usa ka database alang sa pag-authenticate.
Panapos
Bisan kung gigamit ra namon ang mga naka-encrypt nga password aron ipakita kung giunsa ang bcrypt naglihok sa yano nga mubo nga memorya sa Python, ang aktuwal nga paggamit niini naa sa mga aplikasyon sa base sa gumagamit.
Bisan pa, kini nga artikulo nagpakita sa hinungdanon nga mga pamaagi sa pag-organisar sa imong code aron mahimo kini, bisan sa tinuod nga mga kahimtang sa kalibutan.
Pananglitan, kung naggamit ka og Flask, mahimo nimong ihatag ang mga natad sa pagrehistro ug pag-authenticate pinaagi sa lain nga mga porma sa web imbes nga mga input.
Siyempre, samtang nagtandi sa mga password, magbasa ka gikan sa usa ka database nga adunay mga naka-encrypt nga password nga gitago sa tinuod nga kalibutan.
Jona Nitsch
Salamat niining yano ug yano nga pagpatin-aw,
Nakatabang kini og dako sa akong proyekto karon.
Sa akong hunahuna kini maayo kaayo nga ang pananglitan nga code limitado sa labing gamay ug dili sobra nga gibug-aton sama sa daghang uban pang mga pagpatin-aw.
labing maayo nga regards