Una dintre cele mai bune modalități de a stoca parolele în siguranță este să le sărați și să le distrugeți. Sărarea și hashingul transformă o parolă simplă într-o valoare unică care este greu de inversat. Biblioteca bcrypt vă permite să folosiți parole hash și salt în Node.js cu foarte puțin efort.

Ce este hashingul parolei?

Hashing parole înseamnă trecerea unei parole cu text simplu printr-un algoritm de hashing pentru a genera o valoare unică. Câteva exemple de algoritmi de hashing sunt bcrypt, scrypt și SHA. Dezavantajul hashingului este că este previzibil.

De fiecare dată când treceți aceeași intrare unui algoritm de hashing, acesta va genera aceeași ieșire. Un hacker cu acces la parola hashing poate face inginerie inversă a criptării pentru a obține parola originală. Ei pot folosi tehnici precum atacuri cu forță brută sau mese curcubeu. Aici intervine sărarea.

Ce este parola de sare?

Sărarea parolei adaugă un șir aleatoriu (sarea) la o parolă înainte de ao hashing. În acest fel, hash-ul generat va fi întotdeauna diferit de fiecare dată. Chiar dacă un hacker obține parola codificată, nu este practic pentru el să descopere parola originală care a generat-o.

instagram viewer

Cum să utilizați bcrypt pentru a hash și a verifica o parolă

bcrypt este un modul npm care simplifică sărarea parolelor și hashingul.

Pasul 1: Instalați bcrypt

Folosind npm:

npm instalare bcrypt

Folosind fire:

yarn adauga bcrypt

Pasul 2: importați bcrypt

const bcrypt = cere("bcrypt")

Pasul 3: Generați o sare

Pentru a genera sare, apelați bcrypt.genSalt() metodă. Această metodă acceptă o valoare întreagă care este factorul de cost care determină timpul necesar pentru hashing o parolă. Cu cât este mai mare factorul de cost, cu atât algoritmul durează mai mult și cu atât este mai dificil să inversezi hash-ul folosind forța brută. O valoare bună ar trebui să fie suficient de mare pentru a securiza parola, dar și suficient de mică pentru a nu încetini procesul. De obicei variază între 5 și 15. În acest tutorial, vom folosi 10.

bcrypt.genSalt (10, (err, sare) => {
// utilizaresarelahashparola
})

Pasul 4: Hash parola

Transmiteți parola simplă și sarea generată către hash() metodă:

bcrypt.genSalt (10, (err, sare) => {
bcrypt.hash (text simplu Parolă, sare, funcţie(gres, hash) {
// Stochează hash în baza de date
});
})

După ce ați generat hash-ul, stocați-l în baza de date. Îl vei folosi pentru a verifica o parolă și a autentifica un utilizator care încearcă să se autentifice.

În loc să generați sarea și hașul separat, puteți genera automat sarea și hașul folosind o singură funcție.

bcrypt.hash (plaintextPassword, 10, funcţie(gres, hash) {
// stochează hash în baza de date
});

Pasul 5: Comparați parolele folosind bcrypt

La autentificarea utilizatorilor, va trebui să comparați parola pe care o furnizează cu cea din baza de date. bcrypt.compare() acceptă parola text simplu și hash-ul pe care le-ați stocat, împreună cu o funcție de apel invers. Apelul înapoi furnizează un obiect care conține orice erori care au apărut și rezultatul general al comparației. Dacă parola se potrivește cu hash, rezultatul este adevărat.

bcrypt.compare (plaintextPassword, hash, funcţie(gres, rezultat) {
dacă (rezultat) {
// parola este validă
}
});

Folosind Async/Await

Puteți aplica hash și verifica parole folosind async/wait după cum urmează.

asincronfuncţiehashPassword(text simpluParola) {
const hash = așteaptă bcrypt.hash (plaintextPassword, 10);
// Stochează hash în baza de date
}

// compara parola
asincronfuncţiecomparăParola(text simpluParolă, hash) {
const rezultat = așteaptă bcrypt.compare (plaintextPassword, hash);
întoarcere rezultat;
}

Folosind Promisiuni

Biblioteca bcrypt acceptă și utilizarea promisiunilor.

funcţiehashPassword(text simpluParola) {
bcrypt.hash(text simpluParola, 10)
.apoi (hash => {
// Stochează hash în baza de date
})
.captură(err => {
consolă.log (eroare)
})
}

funcţiecomparăParola(text simpluParolă, hash) {
bcyrpt.comparaţie(text simpluParola, hash)
.apoi (rezultat => {
întoarcere rezultat
})
.captură(err => {
consolă.log (eroare)
})
}

Hacelarea și sărarea este un câștig ușor

Puteți folosi biblioteca bcrypt pentru a hash și a verifica parolele în Node.js. Hashing parolele minimizează șansele ca infractorii cibernetici să le folosească pentru a accesa date sau servicii sensibile. Sărați parolele dvs. hashing le face și mai sigure. În afară de hashing, validați întotdeauna puterea parolei ca măsură suplimentară de securitate.

Cele mai frecvente 8 trucuri folosite pentru a pirata parolele

Citiți în continuare

AcțiuneTweetAcțiuneE-mail

Subiecte asemănătoare

  • Programare
  • Securitate
  • Programare
  • JavaScript
  • Securitate
  • Algoritmi

Despre autor

Mary Gathoni (21 articole publicate)

Mary Gathoni este un dezvoltator de software cu o pasiune pentru crearea de conținut tehnic care nu este doar informativ, ci și antrenant. Când nu codifică sau nu scrie, îi place să iasă cu prietenii și să fie în aer liber.

Mai multe de la Mary Gathoni

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona