Salasanan salaus peittää käyttäjien salasanat, joten niitä on vaikea arvata tai purkaa. Se on olennainen askel turvallisen käyttäjäpohjaisen ohjelmiston kehittämisessä. Rakennatpa sitä Flaskilla tai toisella kevyellä Python Frameworkilla, et voi sivuuttaa tätä vaihetta. Siellä bcrypt tulee sisään.

Näytämme sinulle, kuinka voit käyttää bcryptiä salasanasi hajauttamiseen Pythonissa.

Kuinka bcrypt toimii

Bcrypt on kieliagnostinen hajautuskirjasto, joka tarjoaa ainutlaatuisen salasanan salauksen. Samalla kun se salaa merkkijonoa, se luo oletuksena ylimääräisiä satunnaisia ​​merkkejä (suolaa), mikä parantaa salasanasi turvallisuutta.

Valinnaisesti voit myös määrittää saapuvaan merkkijonoon lisättävien ylimääräisten merkkien määrän.

Thebcrypt-kirjasto ei lue raakamerkkijonoja – vain tavukoodia. Joten aluksi sinun tulee koodata saapuva salasanamerkkijono ennen kuin välität sen bcrypt-salaukseen salausta varten.

Koodaus ei ole sama asia kuin salaus. Se vain varmistaa, että merkkijonosta tulee koneellisesti luettava, ennen kuin salausalgoritmi voi peittää sen.

Salasanan salaus Pythonissa bcryptillä

bcrypt salasanan salaus on helppoa Pythonilla. Keskitymme siihen, miten tämä tehdään ilman kehystä. Mutta ei hätää, se noudattaa samaa prosessia kehyksissä, kun osaat tallentaa käyttäjien syötteet ja lukea ne tietokannasta.

Asenna ja määritä bcrypt

Jos et ole jo tehnyt niin, aktivoi Python-virtuaaliympäristö projektisi juuressa. Asenna sitten bcrypt käyttämällä pip:

pip asennus bcrpyt

Aloita salasanojen salaus

Kun se on asennettu, katsotaan kuinka merkkijono salataan bcryptillä:

# Tuo bcrypt:
tuo bcrypt
salasana = "mypasswordstring"
# Koodaa salasana luettavaksi utf-8-tavuiseksi koodiksi:
salasana = salasana.encode('utf-8')
# Tiivistä koodattu salasana ja luo suola:
hashedPassword = bcrypt.hashpw (salasana, bcrypt.gensalt())
tulosta (hashedPassword)

Kun sinä suorita Python-koodi yllä, se tulostaa salatun tavumerkkijonon. Tulos kuitenkin muuttuu joka kerta, kun suoritat komentosarjan. Näin bcrypt varmistaa, että jokaisella käyttäjällä on yksilöllisesti salattu salasana.

Se on muuten salasanan salausta varten.

Kuinka verrata ja vahvistaa salasanoja bcryptillä

Entä jos haluat tallentaa hajautetun salasanan ja varmistaa myöhemmin, että se vastaa käyttäjän antamaa salasanaa todennuksen aikana?

Se on helppoa. Sinun tarvitsee vain verrata todennussalasanaa tietokantaan (tai tässä tapauksessa muistiin) tallennettuun salasanaan.

Ja koska bcrypt lukee vain tavumerkkijonoja, sinun on myös koodattava todentava salasana ennen kuin vertaat sitä tietokannan salasanaan. Pohjimmiltaan voit ristiintarkistaa koodatun todennussyötteen tietokantaan jo tallennetun koodatun hajautetun salasanan kanssa.

Katsotaanpa käyttämällä valepython-syötteitä, kuinka tämä toimii käytännössä:

tuo bcrypt
#tallenna salasanasi:
salasana = str (input("syötä salasana: "))
# Koodaa tallennettu salasana:
salasana = salasana.encode('utf-8')
# Salaa tallennettu salasana:
hashed = bcrypt.hashpw (salasana, bcrypt.gensalt (10))
# Luo todennussalasanan syöttökenttä tarkistaaksesi, syöttääkö käyttäjä oikean salasanan:
check = str (input("tarkista salasana: "))
# Koodaa myös todennussalasana:
check = check.encode('utf-8')
# Käytä ehtoja vertaillaksesi todennussalasanaa tallennettuun salasanaan:
if bcrypt.checkpw (tarkista, tiivistetty):
print ("kirjautuminen onnistui")
muu:
print ("virheellinen salasana")

Yllä oleva koodi pyytää sinua syöttämään uuden salasanan, kun suoritat sen. Python tallentaa tämän muistiin. Tämän jälkeen annat todennuskenttään saman salasanan (vain sinä tiedät).

Python tulostaa onnistumisviestin, jos verrattu salasana vastaa aiemmin tallennettua salattua salasanaa. Muussa tapauksessa se tulostaa epäonnistuneen viestin käärittynä muu lausunto:

Koko konsepti on sama kuin salasanan tallentaminen tietokantaan rekisteröinnin yhteydessä ja sen toimittaminen myöhemmin todennuksen yhteydessä.

Skaalaa salaus bcryptillä

Vaikka olemme vain osoittaneet, kuinka bcrypt toimii tallentamalla salattuja salasanoja tavalliseen Python-muistiin, sen lopullinen käyttö on tosielämän käyttäjäpohjaisissa sovelluksissa.

Tästä huolimatta tämä opetusohjelma näyttää perustavat strukturoida koodisi tämän saavuttamiseksi, jopa tosielämän skenaarioissa. Jos esimerkiksi käytät Flaskia, voit korvata syötteet erillisillä verkkolomakkeilla rekisteröinti- ja todennuskenttien käyttämiseksi. Ja tietysti tallennat salatut salasanat tosielämän tietokantaan ja luet siitä, kun vertaat salasanoja.

12 salauksen perusehtoa, jotka kaikkien pitäisi tietää jo nyt

Kaikki puhuvat salauksesta, mutta oletko eksynyt tai hämmentynyt? Tässä on joitain keskeisiä salaustermejä, jotka sinun on tiedettävä.

Lue Seuraava

JaaTweetSähköposti
Liittyvät aiheet
  • Ohjelmointi
  • Python
  • Ohjelmointi
  • Turvallisuus
Kirjailijasta
Idowu Omisola (116 artikkelia julkaistu)

Idowu on intohimoinen kaikkeen älykkääseen tekniikkaan ja tuottavuuteen. Vapaa-ajallaan hän leikkii koodaamalla ja vaihtuu shakkilaudan ääreen, kun on kyllästynyt, mutta hän myös pitää välillä irtautumisesta rutiineista. Hänen intohimonsa näyttää ihmisille tietä modernin tekniikan parissa motivoi häntä kirjoittamaan lisää.

Lisää Idowu Omisolalta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi