Inhoudsopgave[Zich verstoppen][Laten zien]
U mag nooit een wachtwoord in leesbare tekst bewaren terwijl u een gebruiker bevestigt of iets soortgelijks doet.
Aangezien veel individuen hetzelfde wachtwoord gebruiken, kunnen, als een aanvaller een database met niet-gecodeerde wachtwoorden ontdekt, deze gemakkelijk worden gebruikt in combinatie met overeenkomende e-mails om toegang te krijgen tot de gekoppelde website of het gekoppelde account en zelfs om toegang te krijgen tot andere accounts.
Wachtwoorden worden tegenwoordig vaak gehasht wanneer een wachtwoord wordt opgegeven. Het wordt aangeraden om met zout te hashen en het zout samen met het gehashte wachtwoord te bewaren.
Zouten lijkt misschien een van de stappen in een recept voor hash browns, maar in cryptografie verwijst het naar het toevoegen van willekeurige gegevens aan de invoer van een hashfunctie om ervoor te zorgen dat de hash altijd een uniek resultaat oplevert, zelfs als de invoer identiek is.
Als gevolg hiervan kan de kenmerkende hash die wordt gecreëerd door het toevoegen van het zout ons beschermen tegen verschillende aanvalsmethoden, waaronder aanvallen op hashtafels, terwijl het woordenboek en offline pogingen met brute kracht verstikt.
Hier laten we met behulp van codefragmenten zien hoe u 'bcrypt' kunt gebruiken om uw wachtwoorden te beveiligen.
Dus, wat is 'bcrypt'?
Bcrypt is een hash-bibliotheek die verschillende talen ondersteunt en speciale wachtwoordcodering biedt. Om de veiligheid van uw wachtwoord te vergroten, produceert het automatisch extra willekeurige tekens (salt) bij het versleutelen van uw string.
U kunt er ook voor kiezen om te definiëren hoeveel extra tekens u aan een inkomende tekenreeks wilt toevoegen.
De bcrypt-bibliotheek leest alleen bytecode, geen onbewerkte tekenreeksen. Daarom moet u, voordat u een inkomende wachtwoordreeks naar bcrypt verzendt voor codering, deze eerst coderen.
Coderen en coderen zijn niet dezelfde dingen. Het zorgt er alleen voor dat een string machineleesbaar is voordat deze wordt verborgen door een coderingstechniek.
bcrypt gebruiken om een wachtwoord in Python te versleutelen
Python maakt bcrypt-wachtwoordversleuteling eenvoudig. We concentreren ons erop dit te doen zonder de hulp van een raamwerk. Maar maak je geen zorgen, als je begrijpt hoe je gebruikersinvoer opslaat en uit de database leest, is de procedure hetzelfde in frameworks.
Installatie
U hoeft alleen een virtuele Python-omgeving in te stellen en vervolgens een IDE zoals PyCharm te gebruiken. De bibliotheek moet dan eerst worden geïnstalleerd:
Wachtwoord versleutelen
Laten we eens kijken hoe we bcrypt kunnen gebruiken om een tekst te versleutelen nadat deze is geïnstalleerd:
De bovengenoemde Python-code voert een versleutelde bytestring uit en voert deze uit. Maar elke keer dat u het script uitvoert, is het resultaat anders. Bcrypt gebruikt deze methode om ervoor te zorgen dat elke gebruiker een wachtwoord heeft dat specifiek is versleuteld.
Dat is overigens voor wachtwoordversleuteling.
Wachtwoordvergelijking en bevestiging met Bcrypt
Wat gebeurt er als u het gehashte wachtwoord wilt opslaan en later wilt controleren of het overeenkomt met het wachtwoord dat een gebruiker heeft ingediend voor authenticatie?
Dat is eenvoudig. Alleen het authenticatiewachtwoord moet worden vergeleken met de invoer van de database (of in dit geval in het geheugen).
Het authenticerende wachtwoord moet ook worden gecodeerd voordat het wordt vergeleken met het wachtwoord in de database, omdat bcrypt alleen bytestrings kan lezen. Kortom, je vergelijkt een gecodeerde authenticatie-invoer met het gecodeerde gehashte wachtwoord dat je momenteel in je database hebt.
Laten we dit testen door fictieve Python-invoer te gebruiken:
Bij het uitvoeren van de bovengenoemde code wordt u om een nieuw wachtwoord gevraagd. Dit wordt door Python in het geheugen opgeslagen. In het authenticatiegedeelte voert u vervolgens hetzelfde wachtwoord in, dat voor u privé is.
Als het wachtwoord wordt vergeleken met het wachtwoord dat eerder was versleuteld en de overeenkomst heeft opgeslagen, geeft Python een succesbericht af.
Zo niet, dan wordt de foutmelding afgedrukt en wordt de else-zin toegevoegd.
Het basisidee is identiek aan het registreren en vervolgens een wachtwoord verstrekken aan een database voor authenticatie.
Conclusie
Ook al hebben we eenvoudig gecodeerde wachtwoorden gebruikt om te laten zien hoe bcrypt functioneert in het korte geheugen van Python, de werkelijke toepasbaarheid ligt in gebruikersgebaseerde apps.
Desalniettemin demonstreert dit artikel de essentiële methoden om uw code te organiseren om dit te bereiken, zelfs in reële omstandigheden.
Als u bijvoorbeeld Flask gebruikt, kunt u de registratie- en authenticatievelden opgeven via afzonderlijke webformulieren in plaats van invoer.
Bij het vergelijken van wachtwoorden leest u natuurlijk uit een database die versleutelde wachtwoorden bevat die in de echte wereld worden bewaard.
Jona Nitsch
Bedankt voor deze eenvoudige en eenvoudige uitleg,
Dit heeft mij enorm geholpen bij mijn huidige project.
Ik denk dat het heel goed is dat de voorbeeldcode beperkt is tot het absolute minimum en niet overbelast is zoals zoveel andere verklaringen.
Beste wensen