Paroles šifrēšana maskē lietotāju paroles, tāpēc tās kļūst grūti uzminēt vai atšifrēt. Tas ir būtisks solis drošas lietotāju bāzes programmatūras izstrādē. Neatkarīgi no tā, vai veidojat to, izmantojot Flask vai citu vieglu Python Framework, jūs nevarat ignorēt šo darbību. Šeit parādās bcrypt.

Mēs parādīsim, kā izmantot bcrypt paroles jaukšanai programmā Python.

Kā darbojas bcrypt

Bcrypt ir valodu agnostiska jaukšanas bibliotēka, kas piedāvā unikālu paroles šifrēšanu. Šifrējot jūsu virkni, tā pēc noklusējuma ģenerē papildu nejaušas rakstzīmes (sāls), lai palielinātu jūsu paroles drošību.

Pēc izvēles varat arī norādīt papildu rakstzīmju skaitu, kuras vēlaties pievienot ienākošajai virknei.

Thebcrypt bibliotēka nelasa neapstrādātas virknes — tikai baitu kodu. Tātad, lai sāktu, vispirms ir jākodē ienākošā paroles virkne, pirms tā tiks nodota šifrēšanai šifrēšanai.

Kodēšana nav tas pats, kas šifrēšana. Tas tikai nodrošina, ka virkne kļūst mašīnlasāma, pirms šifrēšanas algoritms to var maskēt.

Paroles šifrēšana Python ar bcrypt

instagram viewer

bcrypt paroles šifrēšana ir vienkārša, izmantojot Python. Mēs pievērsīsimies tam, kā to izdarīt, neizmantojot ietvaru. Bet neuztraucieties, tas pats process notiek ietvaros, tiklīdz jūs zināt, kā saglabāt savu lietotāju ievades datus un nolasīt tos no datu bāzes.

Instalējiet un iestatiet bcrypt

Ja jūs to vēl neesat izdarījis, aktivizēt Python virtuālo vidi jūsu projekta saknē. Pēc tam instalējiet bcrypt, izmantojot pip:

pip instalēt bcrpyt

Sāciet paroļu šifrēšanu

Kad tas ir instalēts, apskatīsim, kā šifrēt virkni, izmantojot bcrypt:

# Importēt bcrypt:
importēt bcrypt
parole = "mana paroles virkne"
# Kodējiet paroli lasāmā utf-8 baitu kodā:
parole = parole.encode('utf-8')
# Jaukt kodēto paroli un ģenerēt sāli:
hashedPassword = bcrypt.hashpw (parole, bcrypt.gensalt())
drukāt (jaukta parole)

Kad jūs palaist Python kodu iepriekš, tas izdrukā šifrētu baitu virkni. Tomēr izvade mainās katru reizi, kad izpildāt skriptu. Tādā veidā bcrypt nodrošina, ka katram lietotājam ir unikāli šifrēta parole.

Tas, starp citu, paroles šifrēšanai.

Kā salīdzināt un apstiprināt paroles ar bcrypt

Ko darīt, ja vēlaties saglabāt jaukto paroli un vēlāk apstiprināt, ka autentifikācijas laikā tā atbilst lietotāja norādītajai parolei?

Tas ir viegli. Jums tikai jāsalīdzina autentifikācijas parole ar to, kas saglabāta datu bāzē (vai šajā gadījumā atmiņā).

Un tā kā bcrypt nolasa tikai baitu virknes, pirms salīdzināšanas ar datu bāzē esošo autentifikācijas paroli būs arī jākodē. Būtībā jūs pārbaudīsit kodētu autentifikācijas ievadi ar kodēto jaukto paroli, kas jau ir saglabāta jūsu datubāzē.

Izmantojot fiktīvas Python ievades, redzēsim, kā tas darbojas praksē:

importēt bcrypt
#saglabājiet savu paroli:
parole = str (input("ievadiet paroli: "))
# Kodējiet saglabāto paroli:
parole = parole.encode('utf-8')
# Šifrējiet saglabāto paroli:
hashed = bcrypt.hashpw (parole, bcrypt.gensalt (10))
# Izveidojiet autentifikācijas paroles ievades lauku, lai pārbaudītu, vai lietotājs ievada pareizo paroli:
check = str (input ("pārbaudīt paroli: "))
# Kodējiet arī autentifikācijas paroli:
check = check.encode('utf-8')
# Izmantojiet nosacījumus, lai salīdzinātu autentifikācijas paroli ar saglabāto paroli:
ja bcrypt.checkpw (pārbaude, jaukta):
drukāt ("veiksmīga pieteikšanās")
cits:
drukāt ("nepareiza parole")

Iepriekš minētais kods prasa ievadīt jaunu paroli, kad to izpildāt. Python to saglabā atmiņā. Pēc tam autentifikācijas laukā norādīsiet to pašu paroli (zināma tikai jums).

Python izdrukā veiksmes ziņojumu, ja salīdzinātā parole atbilst iepriekš saglabātajai šifrētajai parolei. Pretējā gadījumā tas izvada neizdevušos ziņojumu, kas ir iesaiņots cits paziņojums, apgalvojums:

Visa koncepcija ir tāda pati kā paroles saglabāšana datubāzē reģistrācijas laikā un vēlāka autentifikācijas laikā nodrošināt to.

Palielināt šifrēšanu ar bcrypt

Lai gan mēs esam tikai parādījuši, kā darbojas bcrypt, saglabājot šifrētas paroles vienkāršā Python īsajā atmiņā, tā vislielākā izmantošana ir reālās lietotāju bāzes lietojumprogrammās.

Tomēr šajā apmācībā ir parādīti galvenie veidi, kā strukturēt kodu, lai to panāktu pat reālās dzīves scenārijos. Piemēram, ja izmantojat Flask, varat aizstāt ievades ar atsevišķām tīmekļa veidlapām, lai apkalpotu reģistrācijas un autentifikācijas laukus. Un, protams, jūs glabāsit šifrētās paroles reālās dzīves datubāzē un lasīsit no tās, salīdzinot paroles.

12 šifrēšanas pamatnosacījumi, kas jau tagad būtu jāzina ikvienam

Visi runā par šifrēšanu, bet atrodaties apmaldījies vai apmulsis? Šeit ir daži galvenie šifrēšanas termini, kas jums jāzina.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Python
  • Programmēšana
  • Drošība
Par autoru
Idowu Omisola (116 publicēti raksti)

Idowu aizraujas ar jebko viedo tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pārslēdzas uz šaha galdu, kad viņam ir garlaicīgi, taču viņam patīk arī ik pa laikam atrauties no rutīnas. Viņa aizraušanās parādīt cilvēkiem ceļu par modernajām tehnoloģijām motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu