Wachtwoordcodering maskeert de wachtwoorden van gebruikers, zodat ze moeilijk te raden of te decoderen zijn. Het is een essentiële stap in het ontwikkelen van veilige gebruikerssoftware. Of je er nu een bouwt met Flask of een ander licht Python Framework, je kunt die stap niet negeren. Dat is waar bcrypt binnenkomt.

We laten u zien hoe u bcrypt gebruikt om uw wachtwoord in Python te hashen.

Hoe bcrypt werkt

Bcrypt is een taalonafhankelijke hash-bibliotheek die unieke wachtwoordcodering biedt. Tijdens het coderen van je string, genereert het standaard extra willekeurige karakters (salt) om de veiligheid van je wachtwoord te verbeteren.

Optioneel kunt u ook het aantal extra tekens opgeven dat u aan een inkomende tekenreeks wilt toevoegen.

Thebcrypt-bibliotheek leest geen onbewerkte tekenreeksen - alleen bytecode. Om te beginnen codeert u dus eerst een inkomende wachtwoordreeks voordat u deze doorgeeft aan bcrypt voor codering.

Coderen is niet hetzelfde als coderen. Het zorgt er alleen voor dat een string machineleesbaar wordt voordat een versleutelingsalgoritme deze kan maskeren.

instagram viewer

Een wachtwoord coderen in Python met bcrypt

bcrypt-wachtwoordcodering is eenvoudig met Python. We zullen ons concentreren op hoe u dit kunt doen zonder een raamwerk te gebruiken. Maar geen zorgen, het volgt hetzelfde proces in frameworks als u eenmaal weet hoe u de invoer van uw gebruikers moet opslaan en uit de database moet lezen.

Installeer en stel bcrypt in

Als je dat nog niet hebt gedaan, een virtuele Python-omgeving activeren in uw projectroot. Installeer vervolgens bcrypt met behulp van Pip:

pip installeer bcrpyt

Begin met het coderen van wachtwoorden

Laten we na installatie eens kijken hoe we een string kunnen versleutelen met bcrypt:

# bcrypt importeren:
bcrypt importeren
wachtwoord = "mijnwachtwoordtekenreeks"
# Codeer het wachtwoord in een leesbare utf-8 bytecode:
wachtwoord = wachtwoord.encode('utf-8')
# Hash het gecodeerde wachtwoord en genereer een salt:
hashedPassword = bcrypt.hashpw (wachtwoord, bcrypt.gensalt())
print (gehasht wachtwoord)

Wanneer je voer de Python-code uit hierboven drukt het een gecodeerde bytestring af. De uitvoer verandert echter elke keer dat u het script uitvoert. Op deze manier zorgt bcrypt ervoor dat elke gebruiker een uniek versleuteld wachtwoord heeft.

Dat is trouwens voor wachtwoordversleuteling.

Wachtwoorden vergelijken en bevestigen met bcrypt

Wat als u het gehashte wachtwoord wilt opslaan en later wilt bevestigen dat het overeenkomt met het door een gebruiker verstrekte wachtwoord tijdens authenticatie?

Dat is gemakkelijk. U hoeft alleen het authenticatiewachtwoord te vergelijken met het wachtwoord dat is opgeslagen in de database (of in dit geval in het geheugen).

En aangezien bcrypt alleen bytestrings leest, moet je ook het authenticatiewachtwoord coderen voordat je het vergelijkt met het wachtwoord in de database. In wezen controleert u een gecodeerde authenticatie-invoer met het gecodeerde gehashte wachtwoord dat al in uw database is opgeslagen.

Laten we met behulp van dummy Python-invoer kijken hoe dit in de praktijk werkt:

bcrypt importeren
#bewaar je wachtwoord:
wachtwoord = str (invoer ("invoer wachtwoord: "))
# Codeer het opgeslagen wachtwoord:
wachtwoord = wachtwoord.encode('utf-8')
# Versleutel het opgeslagen wachtwoord:
hash = bcrypt.hashpw (wachtwoord, bcrypt.gensalt (10))
# Maak een invoerveld voor het authenticatiewachtwoord om te controleren of een gebruiker het juiste wachtwoord invoert:
check = str (invoer ("controleer wachtwoord: "))
# Codeer ook het authenticerende wachtwoord:
check = check.encode('utf-8')
# Gebruik voorwaarden om het authenticerende wachtwoord te vergelijken met het opgeslagen wachtwoord:
if bcrypt.checkpw (check, gehasht):
print("inloggen gelukt")
anders:
print("onjuist wachtwoord")

De bovenstaande code vraagt ​​u om een ​​nieuw wachtwoord in te voeren wanneer u het uitvoert. Python slaat dit op in het geheugen. U geeft dan hetzelfde wachtwoord (alleen bij u bekend) op in het verificatieveld.

Python drukt een succesbericht af als het vergeleken wachtwoord overeenkomt met het eerder opgeslagen versleutelde wachtwoord. Anders wordt het mislukte bericht weergegeven dat is verpakt in de anders uitspraak:

Het hele concept is hetzelfde als het opslaan van een wachtwoord in een database tijdens de registratie en het later verstrekken tijdens de authenticatie.

Versleuteling opschalen met bcrypt

Hoewel we alleen hebben aangetoond hoe bcrypt werkt door versleutelde wachtwoorden op te slaan in het korte geheugen van Python, is het uiteindelijke gebruik ervan in real-life gebruikerstoepassingen.

Desalniettemin toont deze tutorial de fundamentele manieren om uw code te structureren om dit te bereiken, zelfs in real-life scenario's. Als u bijvoorbeeld Flask gebruikt, kunt u de invoer vervangen door afzonderlijke webformulieren voor de registratie- en authenticatievelden. En natuurlijk slaat u gecodeerde wachtwoorden op in een echte database en leest u daaruit wanneer u wachtwoorden vergelijkt.

12 basisversleutelingsvoorwaarden die iedereen nu zou moeten kennen

Iedereen heeft het over encryptie, maar ben je verdwaald of in de war? Hier zijn enkele belangrijke versleutelingstermen die u moet kennen.

Lees volgende

DeelTweetenE-mail
Gerelateerde onderwerpen
  • Programmeren
  • Python
  • Programmeren
  • Veiligheid
Over de auteur
Idowu Omisola (116 gepubliceerde artikelen)

Idowu is gepassioneerd door alles wat slimme technologie en productiviteit betreft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij vindt het ook heerlijk om af en toe uit de routine te stappen. Zijn passie om mensen de weg te wijzen in moderne technologie motiveert hem om meer te schrijven.

Meer van Idowu Omisola

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren