Jy moet nooit 'n wagwoord in gewone teks hou terwyl jy 'n gebruiker bevestig of iets soortgelyks doen nie.
Aangesien baie individue dieselfde wagwoord gebruik, as 'n aanvaller 'n databasis van ongeënkripteerde wagwoorde ontdek, kan dit maklik saam met ooreenstemmende e-posse gebruik word om by die gekoppelde webwerf of rekening in te gaan en selfs gebruik word om toegang tot ander rekeninge te kry.
Wagwoorde word vandag dikwels gehash wanneer 'n wagwoord verskaf word. Dit word aangeraai om met sout te hash en die sout saam met die gehashte wagwoord te hou.
Sout lyk dalk soos een van die stappe in 'n resep vir hash browns, maar in kriptografie verwys dit na die byvoeging van ewekansige data by 'n hash-funksie se invoer om te verseker dat die hash altyd 'n unieke resultaat sal lewer, selfs al is die insette identies.
As gevolg hiervan kan die kenmerkende hash wat geskep word deur die sout by te voeg, ons verdedig teen verskeie aanvalmetodes, insluitend hash-tabelaanvalle, terwyl woordeboek en brute-force vanlyn pogings gesmoor word.
Hier, met behulp van kodebrokkies, sal ons demonstreer hoe om 'bcrypt' te gebruik om jou wagwoorde te beveilig.
So, wat is 'bcrypt'?
Bcrypt is 'n hashing-biblioteek wat verskeie tale ondersteun en spesiale wagwoordkodering bied. Om die sekuriteit van jou wagwoord te verhoog, produseer dit outomaties bykomende ewekansige karakters (sout) wanneer jou string enkripteer.
Jy kan ook kies om te definieer hoeveel bykomende karakters jy by 'n inkomende string wil voeg.
Die bcrypt-biblioteek lees slegs byte-kode, nie rou snare nie. Daarom, voordat u 'n inkomende wagwoordstring na bcrypt vir enkripsie indien, moet u dit eers enkodeer.
Enkripteer en enkodering is nie dieselfde dinge nie. Dit maak net seker dat 'n string masjienleesbaar is voordat dit deur 'n enkripsietegniek bedek word.
Gebruik bcrypt om 'n wagwoord in Python te enkripteer
Python maak bcrypt-wagwoordenkripsie eenvoudig. Ons sal daarop konsentreer om dit te doen sonder die hulp van 'n raamwerk. Maar moenie bekommerd wees nie, as jy verstaan hoe om gebruikersinsette te stoor en dit vanaf die databasis te lees, is die prosedure dieselfde in raamwerke.
installasie
U hoef slegs 'n virtuele Python-omgewing op te stel en dan 'n IDE soos PyCharm te gebruik. Die biblioteek moet dan eers geïnstalleer word:
Enkripteer wagwoord
Kom ons kyk hoe om bcrypt te gebruik om 'n teks te enkripteer nadat dit geïnstalleer is:
Die voorgenoemde Python-kode voer 'n geënkripteerde greepstring uit en voer dit uit. Maar elke keer as jy die skrip hardloop, is die resultaat anders. Bcrypt gebruik hierdie metode om seker te maak dat elke gebruiker 'n wagwoord het wat spesifiek geïnkripteer is.
Dit is terloops vir wagwoordenkripsie.
Wagwoordvergelyking en bevestiging met behulp van Bcrypt
Wat gebeur as jy die gehashte wagwoord wil stoor en later kyk of dit ooreenstem met die wagwoord wat 'n gebruiker vir stawing ingedien het?
Dis eenvoudig. Slegs die stawing wagwoord moet vergelyk word met die databasis se inskrywing (of in die geheue in hierdie geval).
Die stawing wagwoord moet ook geënkodeer word voordat dit vergelyk word met die een in die databasis, want bcrypt kan slegs grepe-stringe lees. Basies, jy sal 'n geënkodeerde stawing invoer vergelyk met die geënkodeerde hashed wagwoord wat jy tans in jou databasis het.
Kom ons toets dit deur fiktiewe Python-insette te gebruik:
Nadat u die bogenoemde kode uitgevoer het, word u vir 'n nuwe wagwoord gevra. Dit word in die geheue gestoor deur Python. In die stawingsafdeling sal jy dan dieselfde wagwoord invoer, wat vir jou privaat is.
As die wagwoord vergelyk word en die een wat voorheen geënkripteer is en die wedstryd gestoor is, stuur Python 'n suksesboodskap.
Indien nie, word die foutboodskap uitgedruk en dan word die ander sin bygevoeg.
Die fundamentele idee is identies aan dié om te registreer en dan 'n wagwoord aan 'n databasis te verskaf vir verifikasie.
Gevolgtrekking
Selfs al het ons eenvoudig geïnkripteer wagwoorde gebruik om te wys hoe bcrypt funksioneer in gewone Python-kortgeheue, lê die werklike toepaslikheid daarvan in gebruikersbasistoepassings.
Nietemin demonstreer hierdie artikel die noodsaaklike metodes om u kode te organiseer om dit te bereik, selfs in werklike omstandighede.
As jy byvoorbeeld Flask gebruik, kan jy die registrasie- en verifikasievelde via aparte webvorms in plaas van insette verskaf.
Natuurlik, terwyl u wagwoorde vergelyk, lees u uit 'n databasis wat geënkripteerde wagwoorde bevat wat in die regte wêreld gehou word.
Jona Nitsch
Dankie vir hierdie eenvoudige en eenvoudige verduideliking,
Dit het my baie gehelp in my huidige projek.
Ek dink dit is baie goed dat die voorbeeldkode tot die minimum beperk is en nie oorlaai word soos so baie ander verduidelikings nie.
Beste groete