Te ei tohi kasutajat kinnitades ega midagi sarnast tehes kunagi parooli lihttekstina hoida.
Kuna paljud inimesed kasutavad sama parooli, saab kui ründaja avastab krüptimata paroolide andmebaasi, saab neid hõlpsasti kasutada koos sobivate meilidega lingitud veebisaidile või kontole sisenemiseks ja isegi teistele kontodele juurdepääsu proovimiseks.
Paroolide sisestamisel räsitakse tänapäeval sageli paroole. Soovitatav on räsida soolaga ja hoida soola koos räsitud parooliga.
Soolamine võib tunduda räsipruunide retsepti ühe etapina, kuid krüptograafias viitab see juhuslike andmete lisamisele räsifunktsiooni sisendisse tagamaks, et räsi annab alati ainulaadse tulemuse, isegi kui sisendid on identsed.
Selle tulemusel võib soola lisamisega loodud eristav räsi kaitsta meid mitme ründemeetodi eest, sealhulgas räsitabeli rünnakute eest, samal ajal lämmatades sõnaraamatu ja jõhkra jõuga võrguühenduseta katsed.
Siin demonstreerime koodilõikude abil, kuidas kasutada paroolide kaitsmiseks 'bcrypt'i.
Niisiis, mis on "bcrypt"?
Bcrypt on räsimisteek, mis toetab mitut keelt ja pakub spetsiaalset paroolikrüptimist. Parooli turvalisuse suurendamiseks toodab see stringi krüptimisel automaatselt täiendavaid juhuslikke märke (sool).
Samuti saate määrata, kui palju täiendavaid märke soovite sissetulevale stringile lisada.
Bcrypt teek loeb ainult baitkoodi, mitte töötlemata stringe. Seetõttu peate enne sissetuleva paroolistringi saatmist krüptimiseks krüptimiseks selle esmalt kodeerima.
Krüptimine ja kodeerimine ei ole samad asjad. See lihtsalt tagab, et string on masinloetav, enne kui see krüpteerimistehnikaga varjatakse.
Bcrypti kasutamine parooli krüptimiseks Pythonis
Python muudab parooli krüptimise lihtsaks. Keskendume selle tegemisele ilma raamistiku abita. Kuid ärge muretsege, kui saate aru, kuidas kasutaja sisendeid salvestada ja neid andmebaasist lugeda, on raamistik raamistikus sama.
paigaldamine
Peate seadistama ainult Pythoni virtuaalse keskkonna ja seejärel kasutama IDE-d, nagu PyCharm. Seejärel tuleb esmalt raamatukogu installida:
Parooli krüptimine
Vaatame, kuidas kasutada teksti krüptimiseks pärast selle installimist bcrypt:
Eespool mainitud Pythoni kood käivitab ja väljastab krüptitud baidistringi. Kuid iga kord, kui skripti käivitate, on tulemus erinev. Bcrypt kasutab seda meetodit tagamaks, et igal kasutajal on spetsiaalselt krüptitud parool.
See on muide parooli krüptimiseks.
Paroolide võrdlemine ja kinnitamine Bcrypti abil
Mis juhtub, kui soovite räsitud parooli salvestada ja hiljem kontrollida, kas see ühtib kasutaja autentimiseks esitatud parooliga?
See on lihtne. Andmebaasi kirjega (või antud juhul mälus oleva) tuleb võrrelda ainult autentimisparooli.
Autentimisparool tuleb ka enne andmebaasis olevaga võrdlemist kodeerida, kuna bcrypt suudab lugeda ainult baidistringe. Põhimõtteliselt võrdlete kodeeritud autentimissisendit kodeeritud räsitud parooliga, mis teil praegu andmebaasis on.
Testime seda fiktiivsete Pythoni sisendite abil:
Eelnimetatud koodi käivitamisel palutakse teil sisestada uus parool. Selle salvestab Python mällu. Seejärel sisestate autentimise jaotisesse sama parooli, mis on teie jaoks privaatne.
Kui võrrelda parooli ja parooli, mis oli varem krüptitud ja vaste salvestatud, saadab Python eduteate.
Kui ei, prinditakse veateade välja ja seejärel lisatakse else lause.
Põhiidee on identne registreerimise ja seejärel autentimiseks andmebaasi parooli sisestamise ideega.
Järeldus
Isegi kui oleme lihtsalt kasutanud krüpteeritud paroole, et näidata, kuidas krüpti toimib lihtsas Pythoni lühimälus, on selle tegelik rakendatavus kasutajapõhistes rakendustes.
Sellegipoolest näitab see artikkel olulisi meetodeid koodi korraldamiseks, et seda saavutada isegi reaalsetes tingimustes.
Näiteks kui kasutate Flaski, saate sisestamise asemel sisestada registreerimis- ja autentimisväljad eraldi veebivormide kaudu.
Muidugi saate paroole võrreldes lugeda andmebaasist, mis sisaldab reaalses maailmas hoitavaid krüpteeritud paroole.
Jona Nitsch
Tänan teid selle lihtsa ja lihtsa selgituse eest,
See aitas mind praeguses projektis palju.
Minu arvates on väga hea, et näidiskood piirdub miinimumiga ega ole ülekoormatud, nagu paljud teised selgitused.
Parimate soovidega