Viens no labākajiem veidiem, kā droši uzglabāt paroles, ir to sālīšana un jaukšana. Sālīšana un jaukšana pārvērš vienkāršu paroli par unikālu vērtību, kuru ir grūti mainīt. Bcrypt bibliotēka ļauj ar ļoti nelielu piepūli sajaukt un pievienot paroles pakalpojumā Node.js.

Kas ir paroles jaukšana?

Paroles jaukšana nozīmē vienkārša teksta paroles nodošanu caur jaukšanas algoritmu, lai ģenerētu unikālu vērtību. Daži jaukšanas algoritmu piemēri ir bcrypt, scrypt un SHA. Jaukšanas negatīvā puse ir tā, ka tā ir paredzama.

Katru reizi, kad nododat to pašu ievadi jaukšanas algoritmam, tas ģenerēs to pašu izvadi. Hakeris, kuram ir piekļuve jauktajai parolei, var mainīt šifrēšanu, lai iegūtu sākotnējo paroli. Viņi var izmantot tādas metodes kā brutāla spēka uzbrukumi vai varavīksnes galdi. Šeit parādās sālīšana.

Kas ir paroles sālīšana?

Paroles sālīšana pirms paroles jaukšanas pievieno nejaušu virkni (sāls). Tādā veidā ģenerētais hash vienmēr būs atšķirīgs katru reizi. Pat ja hakeris iegūst jaukto paroli, viņam ir nepraktiski atklāt sākotnējo paroli, kas to ģenerēja.

instagram viewer

Kā izmantot bcrypt, lai sajauktu un pārbaudītu paroli

bcrypt ir npm modulis, kas vienkāršo paroļu sālīšanu un jaukšanu.

1. darbība. Instalējiet bcrypt

Izmantojot npm:

npm uzstādīt bcrypt

Izmantojot dziju:

dzija pievienot bcrypt

2. darbība: importējiet bcrypt

konst bcrypt = pieprasīt("bcrypt")

3. darbība: ģenerējiet sāli

Lai ģenerētu sāli, zvaniet uz bcrypt.genSalt() metodi. Šī metode pieņem vesela skaitļa vērtību, kas ir izmaksu faktors, kas nosaka laiku, kas nepieciešams paroles jaukšanai. Jo augstāks izmaksu faktors, jo vairāk laika aizņem algoritms, un jo grūtāk ir mainīt jaukšanu, izmantojot brutālu spēku. Labai vērtībai ir jābūt pietiekami lielai, lai nodrošinātu paroli, bet arī pietiekami zemai, lai nepalēninātu procesu. Parasti tas svārstās no 5 līdz 15. Šajā apmācībā mēs izmantosim 10.

bcrypt.genSāls (10, (err, salt) => {
// izmantotsālsuzhashparole
})

4. darbība: sajauciet paroli

Nosūtiet vienkāršu paroli un ģenerēto sāli uz hash () metode:

bcrypt.genSāls (10, (err, salt) => {
bcrypt.hash (plaintextPassword, sāls, funkcija(kļūda, hash) {
// Saglabājiet hash datu bāzē
});
})

Kad esat ģenerējis jaucējkodu, saglabājiet to datu bāzē. Jūs to izmantosit, lai pārbaudītu paroli un autentificētu lietotāju, kurš mēģina pieteikties.

Tā vietā, lai atsevišķi ģenerētu sāli un jaucējkodu, varat arī automātiski ģenerēt sāli un jaukšanu, izmantojot vienu funkciju.

bcrypt.hash (plaintextPassword, 10, funkcija(kļūda, hash) {
// saglabā jaucējkodu datu bāzē
});

5. darbība: salīdziniet paroles, izmantojot bcrypt

Uz autentificēt lietotājus, jums būs jāsalīdzina viņu sniegtā parole ar datu bāzē esošo paroli. bcrypt.compare() pieņem vienkāršā teksta paroli un jaucējkodu, ko saglabājāt, kā arī atzvanīšanas funkciju. Šī atzvanīšana nodrošina objektu, kurā ir visas radušās kļūdas, un kopējo salīdzinājuma rezultātu. Ja parole sakrīt ar jaucējkodu, rezultāts ir patiess.

bcrypt.compare (plaintextPassword, hash, funkcija(kļūda, rezultāts) {
if (rezultāts) {
// parole ir derīga
}
});

Async/Await izmantošana

Varat jaukt un pārbaudīt paroles, izmantojot async/await, kā norādīts tālāk.

asinhronsfunkcijahashPassword(plaintextPassword) {
konst hash = gaidīt bcrypt.hash (plaintextPassword, 10);
// Saglabājiet hash datu bāzē
}

// salīdzināt paroli
asinhronsfunkcijasalīdzināt paroli(plaintextPassword, hash) {
konst rezultāts = gaidīt bcrypt.compare (plaintextPassword, hash);
atgriezties rezultāts;
}

Solījumu izmantošana

Bcrypt bibliotēka atbalsta arī solījumu izmantošanu.

funkcijahashPassword(plaintextPassword) {
bcrypt.hash(plaintextPassword, 10)
.tad (hash => {
// Saglabājiet hash datu bāzē
})
.noķert(err => {
konsole.log (kļūda)
})
}

funkcijasalīdzināt paroli(plaintextPassword, hash) {
bcyrpt.salīdzināt(plaintextPassword, hash)
.tad (rezultāts => {
atgriezties rezultāts
})
.noķert(err => {
konsole.log (kļūda)
})
}

Jaukšana un sālīšana ir viegla uzvara

Varat izmantot bcrypt bibliotēku, lai jauktu un pārbaudītu paroles pakalpojumā Node.js. Paroļu jaukšana samazina iespēju, ka kibernoziedznieki tās izmantos, lai piekļūtu sensitīviem datiem vai pakalpojumiem. Jaukto paroļu sālīšana padara tās vēl drošākas. Papildus jaukšanai vienmēr pārbaudiet paroles stiprumu kā papildu drošības līdzekli.

8 visizplatītākie triki, ko izmanto paroļu uzlaušanai

Lasiet Tālāk

DalītiesČivinātDalītiesE-pasts

Saistītās tēmas

  • Programmēšana
  • Drošība
  • Programmēšana
  • JavaScript
  • Drošība
  • Algoritmi

Par autoru

Marija Gatoni (Publicēts 21 raksts)

Mary Gathoni ir programmatūras izstrādātāja, kuras aizraušanās ir tāda tehniska satura izveide, kas ir ne tikai informatīvs, bet arī saistošs. Kad viņa nekodē vai neraksta, viņai patīk pavadīt laiku ar draugiem un būt ārā.

Vairāk no Mary Gathoni

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