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.

instagram viewer

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.

12 grunnleggende krypteringsvilkår alle bør kjenne til nå

Alle snakker om kryptering, men finner du deg selv fortapt eller forvirret? Her er noen viktige krypteringsbegreper du trenger å vite.

Les Neste

DelekvitringE-post
Relaterte temaer
  • Programmering
  • Python
  • Programmering
  • Sikkerhet
Om forfatteren
Idowu Omisola (116 artikler publisert)

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.

Mer fra Idowu Omisola

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