Passordkryptering maskerer brukernes passord slik at de blir vanskelige å gjette eller avkode. Det er et viktig skritt i utviklingen av sikker brukerbasert programvare. Enten du bygger en med Flask eller et annet lett Python-rammeverk, kan du ikke ignorere det trinnet. Det er der bcrypt kommer inn.
Vi viser deg hvordan du bruker bcrypt til å hash passordet ditt i Python.
Hvordan bcrypt fungerer
Bcrypt er et språkagnostisk hashing-bibliotek som tilbyr unik passordkryptering. Mens du krypterer strengen din, genererer den ekstra tilfeldige tegn (salt) som standard for å øke sikkerheten til passordet ditt.
Eventuelt kan du også spesifisere antall ekstra tegn du vil legge til en innkommende streng.
Thebcrypt-biblioteket leser ikke råstrenger – bare bytekode. Så for å starte, skal du først kode en innkommende passordstreng før du sender den til bcrypt for kryptering.
Koding er ikke det samme som kryptering. Den sikrer bare at en streng blir maskinlesbar før en krypteringsalgoritme kan maskere den.
Kryptere et passord i Python med bcrypt
Bcrypt passordkryptering er enkelt med Python. Vi vil fokusere på hvordan du gjør dette uten å bruke et rammeverk. Men ingen grunn til bekymring, den følger den samme prosessen i rammeverk når du vet hvordan du lagrer brukernes inndata og leser dem fra databasen.
Installer og sett opp bcrypt
Hvis du ikke allerede har gjort det, aktivere et virtuelt Python-miljø i prosjektroten din. Installer deretter bcrypt ved hjelp av pip:
pip installer bcrpyt
Begynn å kryptere passord
Når den er installert, la oss se hvordan du krypterer en streng ved å bruke bcrypt:
# Importer bcrypt:
importer bcrypt
passord = "mypasswordstring"
# Kod passord inn i en lesbar utf-8 byte kode:
passord = password.encode('utf-8')
# Hash det ekodede passordet og generer et salt:
hashedPassword = bcrypt.hashpw (passord, bcrypt.gensalt())
print (hashedPassword)
Når du kjør Python-koden ovenfor, skriver den ut en kryptert bytestreng. Utdataene endres imidlertid hver gang du kjører skriptet. Slik sikrer bcrypt at hver bruker har et unikt kryptert passord.
Det er for passordkryptering, forresten.
Hvordan sammenligne og bekrefte passord med bcrypt
Hva om du vil lagre det hash-kodede passordet og senere bekrefte at det samsvarer med en brukers oppgitte passord under autentisering?
Det er enkelt. Du trenger bare å sammenligne autentiseringspassordet med det som er lagret i databasen (eller i minnet i dette tilfellet).
Og siden bcrypt bare leser byte-strenger, må du også kode autentiseringspassordet før du sammenligner det med det i databasen. I hovedsak vil du krysssjekke en kodet autentiseringsinngang med det kodede hashed-passordet som allerede er lagret i databasen din.
Ved å bruke dummy Python-innganger, la oss se hvordan dette fungerer i praksis:
importer bcrypt
#lagre passordet ditt:
passord = str (input("inntast passord: "))
# Kod inn det lagrede passordet:
passord = password.encode('utf-8')
# Krypter det lagrede passordet:
hashed = bcrypt.hashpw (passord, bcrypt.gensalt (10))
# Opprett et inndatafelt for autentiseringspassord for å sjekke om en bruker skriver inn riktig passord:
check = str (input("sjekk passord: "))
# Kod også autentiseringspassordet:
check = check.encode('utf-8')
# Bruk betingelser for å sammenligne autentiseringspassordet med det lagrede:
if bcrypt.checkpw (sjekk, hashet):
print("påloggingssuksess")
ellers:
print("feil passord")
Koden ovenfor ber deg legge inn et nytt passord når du kjører det. Python lagrer dette i minnet. Du vil da oppgi det samme passordet (kun kjent for deg) i autentiseringsfeltet.
Python skriver ut en suksessmelding hvis det sammenlignede passordet samsvarer med det tidligere lagrede krypterte. Ellers sender den ut den mislykkede meldingen pakket inn i ellers uttalelse:
Hele konseptet er det samme som å lagre et passord i en database under registrering og gi det senere under autentisering.
Skaler opp kryptering med bcrypt
Selv om vi bare har demonstrert hvordan bcrypt fungerer ved å lagre krypterte passord i vanlig Python-kortminne, er den ultimate bruken i virkelige brukerbaserte applikasjoner.
Ikke desto mindre viser denne opplæringen de grunnleggende måtene å strukturere koden på for å oppnå dette, selv i virkelige scenarier. Hvis du for eksempel bruker Flask, kan du erstatte inndataene med separate nettskjemaer for å betjene registrerings- og autentiseringsfeltene. Og selvfølgelig vil du lagre krypterte passord i en virkelig database og lese fra den når du sammenligner passord.
Alle snakker om kryptering, men finner du deg selv fortapt eller forvirret? Her er noen viktige krypteringsbegreper du trenger å vite.
Les Neste
- Programmering
- Python
- Programmering
- Sikkerhet

Idowu er lidenskapelig opptatt av alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han elsker også å bryte ut av rutinene en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere