Apstiprinot lietotāju vai veicot kaut ko līdzīgu, jūs nekad nedrīkstat glabāt paroli vienkāršā tekstā.
Tā kā daudzas personas izmanto vienu un to pašu paroli, ja uzbrucējs atklāj nešifrētu paroļu datubāzi, tās var viegli izmantot kopā ar atbilstošajiem e-pasta ziņojumiem, lai ievadītu saistīto vietni vai kontu, un pat izmantot, lai mēģinātu piekļūt citiem kontiem.
Paroles mūsdienās bieži tiek jauktas, kad tiek ievadīta parole. Ieteicams sajaukt ar sāli un saglabāt sāli kopā ar jaukto paroli.
Sālīšana varētu šķist viens no soļiem jauktā brūno toņu receptē, taču kriptogrāfijā tas attiecas uz nejaušu datu pievienošanu jaukšanas funkcijas ievadei, lai nodrošinātu, ka jaucējfunkcija vienmēr nodrošinās unikālu rezultātu, pat ja ievades ir identiskas.
Rezultātā īpašais jauktais, kas izveidots, pievienojot sāli, var aizsargāt mūs no vairākām uzbrukuma metodēm, tostarp uzbrukumiem jaukšanas tabulai, vienlaikus nomācot vārdnīcas un brutāla spēka bezsaistes mēģinājumus.
Šeit, izmantojot koda fragmentus, mēs parādīsim, kā izmantot "bcrypt", lai aizsargātu jūsu paroles.
Tātad, kas ir "bcrypt"?
Bcrypt ir jaukšanas bibliotēka, kas atbalsta vairākas valodas un nodrošina īpašu paroles šifrēšanu. Lai palielinātu paroles drošību, šifrējot jūsu virkni, tā automātiski izveido papildu nejaušas rakstzīmes (sāls).
Varat arī definēt, cik papildu rakstzīmju vēlaties pievienot ienākošajai virknei.
Bcrypt bibliotēka nolasa tikai baitu kodu, nevis neapstrādātas virknes. Tāpēc pirms ienākošās paroles virknes iesniegšanas šifrēšanai šifrēšanai, vispirms tā ir jākodē.
Šifrēšana un kodēšana nav viens un tas pats. Tas tikai nodrošina, ka virkne ir mašīnlasāma, pirms tā tiek aizsegta ar šifrēšanas paņēmienu.
Bcrypt izmantošana, lai šifrētu paroli Python
Python padara bcrypt paroles šifrēšanu vienkāršu. Mēs koncentrēsimies uz to, lai to paveiktu bez ietvara palīdzības. Bet neuztraucieties, ja jūs saprotat, kā saglabāt lietotāja ievadītos datus un nolasīt tos no datu bāzes, ietvaros procedūra ir tāda pati.
uzstādīšana
Jums tikai jāiestata Python virtuālā vide un pēc tam jāizmanto IDE, piemēram, PyCharm. Pēc tam vispirms jāinstalē bibliotēka:
Paroles šifrēšana
Apskatīsim, kā izmantot bcrypt, lai šifrētu tekstu pēc tā instalēšanas:
Iepriekš minētais Python kods izpilda un izvada šifrētu baitu virkni. Bet katru reizi, kad palaižat skriptu, rezultāts ir atšķirīgs. Bcrypt izmanto šo metodi, lai pārliecinātos, ka katram lietotājam ir īpaši šifrēta parole.
Tas, starp citu, ir paroles šifrēšanai.
Paroles salīdzināšana un apstiprināšana, izmantojot Bcrypt
Kas notiek, ja vēlaties saglabāt jaukto paroli un vēlāk pārbaudīt, vai tā atbilst parolei, ko lietotājs iesniedza autentifikācijai?
Tas ir vienkārši. Tikai autentifikācijas parole ir jāsalīdzina ar datu bāzes ierakstu (vai šajā gadījumā atmiņā).
Autentifikācijas parole ir arī jākodē pirms salīdzināšanas ar datu bāzē esošo, jo bcrypt var lasīt tikai baitu virknes. Būtībā jūs salīdzināsit kodētu autentifikācijas ievadi ar kodēto jaukto paroli, kas pašlaik ir jūsu datubāzē.
Pārbaudīsim to, izmantojot fiktīvas Python ievades:
Palaižot iepriekš minēto kodu, jums tiek prasīts ievadīt jaunu paroli. Python to saglabā atmiņā. Autentifikācijas sadaļā jūs ievadīsit to pašu paroli, kas ir privāta jums.
Ja parole tiek salīdzināta ar paroli, kas iepriekš tika šifrēta un saglabāta, Python izdod veiksmes ziņojumu.
Ja nē, kļūdas ziņojums tiek izdrukāts un pēc tam tiek pievienots cits teikums.
Pamatideja ir identiska reģistrēšanai un pēc tam paroles ievadīšanai datubāzē autentifikācijai.
Secinājumi
Pat ja mēs esam vienkārši izmantojuši šifrētas paroles, lai parādītu, kā šifrēšana darbojas vienkāršā Python īsajā atmiņā, tā faktiskā pielietojamība ir lietotāja bāzes lietotnēs.
Tomēr šajā rakstā ir parādītas galvenās metodes, kā sakārtot kodu, lai to paveiktu pat reālos apstākļos.
Piemēram, ja izmantojat Flask, varat ievadīt reģistrācijas un autentifikācijas laukus, izmantojot atsevišķas tīmekļa veidlapas, nevis ievades.
Protams, salīdzinot paroles, jūs lasīsit no datu bāzes, kurā ir šifrētas paroles, kas tiek glabātas reālajā pasaulē.
Džona Niča
Paldies par šo vienkāršo un vienkāršo skaidrojumu,
Tas man ļoti palīdzēja manā pašreizējā projektā.
Manuprāt, ir ļoti labi, ka piemēra kods ir ierobežots līdz minimumam un nav pārslogots kā daudzi citi skaidrojumi.
Ar laba vēlējumiem