Üks parimaid viise paroolide turvaliseks salvestamiseks on nende soolamine ja räsimine. Soolamine ja räsimine muudab tavalise parooli ainulaadseks väärtuseks, mida on raske tagasi pöörata. Bcrypt teek võimaldab teil Node.js-i paroole väga vähese vaevaga räsida ja soolada.

Mis on parooli räsimine?

Parooli räsimine tähendab unikaalse väärtuse genereerimiseks lihtteksti parooli edastamist räsimisalgoritmi kaudu. Räsimisalgoritmide näited on bcrypt, scrypt ja SHA. Räsimise negatiivne külg on see, et see on etteaimatav.

Iga kord, kui edastate sama sisendi räsimisalgoritmile, genereerib see sama väljundi. Häkker, kellel on juurdepääs räsitud paroolile, saab algse parooli saamiseks krüptimise pöördprojekteerida. Nad võivad kasutada selliseid tehnikaid nagu toore jõu rünnakud või vikerkaarelauad. Siin tulebki soolamine sisse.

Mis on salasõna soolamine?

Salasõna soolamine lisab paroolile enne räsimist juhusliku stringi (soola). Nii on loodud räsi alati iga kord erinev. Isegi kui häkker saab räsitud parooli, pole tal otstarbekas avastada selle tekitanud algset parooli.

Kuidas kasutada parooli räsimiseks ja kinnitamiseks bcrypti

bcrypt on npm-moodul, mis lihtsustab paroolide soolamist ja räsimist.

1. samm: installige bcrypt

Npm kasutamine:

npm installida bcrypt

Lõnga kasutamine:

lõng lisa bcrypt

2. samm: importige bcrypt

konst bcrypt = nõuda("bcrypt")

3. samm: genereerige sool

Soola genereerimiseks helistage bcrypt.genSalt() meetod. See meetod aktsepteerib täisarvu väärtust, mis on kulutegur, mis määrab parooli räsimiseks kuluva aja. Mida kõrgem on kulutegur, seda rohkem aega võtab algoritm ja seda keerulisem on räsi toore jõu abil ümber pöörata. Hea väärtus peaks olema parooli kaitsmiseks piisavalt kõrge, kuid ka piisavalt madal, et protsessi mitte aeglustada. Tavaliselt jääb see vahemikku 5 kuni 15. Selles õpetuses kasutame 10.

bcrypt.genSalt (10, (err, salt) => {
// kasutadasoolajuurderäsiparool
})

4. samm: räsi parool

Edastage tavaline parool ja loodud sool hash() meetod:

bcrypt.genSalt (10, (err, salt) => {
bcrypt.hash (lihttekstParool, sool, funktsiooni(eks, räsi) {
// Räsi salvestamine andmebaasi
});
})

Kui olete räsi loonud, salvestage see andmebaasi. Kasutate seda parooli kinnitamiseks ja sisse logida üritava kasutaja autentimiseks.

Soola ja räsi eraldi genereerimise asemel saate ka soola ja räsi automaatselt genereerida, kasutades ühte funktsiooni.

bcrypt.hash (lihttekstPassword, 10, funktsiooni(eks, räsi) {
// salvestab räsi andmebaasi
});

5. samm: võrrelge paroole kasutades bcrypt

To kasutajate autentimine, peate võrdlema nende pakutavat parooli andmebaasis oleva parooliga. bcrypt.compare() aktsepteerib teie salvestatud lihtteksti parooli ja räsi koos tagasihelistamisfunktsiooniga. See tagasihelistamine annab objekti, mis sisaldab esinenud vigu ja võrdluse üldtulemust. Kui parool ühtib räsiga, on tulemus tõene.

bcrypt.compare (plaintextPassword, hash, funktsiooni(eksitus, tulemus) {
if (tulemus) {
// parool on kehtiv
}
});

Asünkrooni/ootmise kasutamine

Saate paroole räsida ja kinnitada, kasutades asünkrooni/oota järgmiselt.

asünkrfunktsioonihashPassword(lihttekstPassword) {
konst räsi = ootama bcrypt.hash (lihttekstPassword, 10);
// Räsi salvestamine andmebaasi
}

// võrrelge parooli
asünkrfunktsioonivõrrelge parooli(tavaline tekstParool, räsi) {
konst tulemus = ootama bcrypt.compare (plaintextPassword, hash);
tagasi tulemus;
}

Lubaduste kasutamine

Bcrypt teek toetab ka lubaduste kasutamist.

funktsioonihashPassword(lihttekstPassword) {
bcrypt.räsi(lihttekstPassword, 10)
.hen (räsi => {
// Räsi salvestamine andmebaasi
})
.püüda(err => {
konsool.log (viga)
})
}

funktsioonivõrrelge parooli(tavaline tekstParool, räsi) {
bcyrpt.võrdlema(lihttekstPassword, räsi)
.siis (tulemus => {
tagasi tulemus
})
.püüda(err => {
konsool.log (viga)
})
}

Räsimine ja soolamine on lihtne võit

Paroolide räsimiseks ja kinnitamiseks rakenduses Node.js saate kasutada bcrypt teeki. Paroolide räsimine vähendab võimalust, et küberkurjategijad kasutavad neid tundlikele andmetele või teenustele juurdepääsuks. Räsitud paroolide soolamine muudab need veelgi turvalisemaks. Lisaks räsimisele kontrollige alati täiendava turvameetmena parooli tugevust.

8 kõige levinumat nippi, mida paroolide häkkimiseks kasutatakse

Loe edasi

JagaSäutsJagaMeil

Seotud teemad

  • Programmeerimine
  • Turvalisus
  • Programmeerimine
  • JavaScript
  • Turvalisus
  • Algoritmid

Autori kohta

Mary Gathoni (21 avaldatud artiklit)

Mary Gathoni on tarkvaraarendaja, kelle kirg on luua tehnilist sisu, mis pole mitte ainult informatiivne, vaid ka kaasahaarav. Kui ta ei kodeeri ega kirjuta, naudib ta sõpradega aega veetmist ja õues olemist.

Rohkem Mary Gathonist

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin