Један од најбољих начина за безбедно складиштење лозинки је да их солите и хеширате. Сољење и хеширање претвара обичну лозинку у јединствену вредност коју је тешко поништити. Библиотека бцрипт вам омогућава хеш и солне лозинке у Ноде.јс уз врло мало труда.

Шта је хеширање лозинке?

Хеширање лозинке значи пропуштање лозинке обичног текста кроз алгоритам хеширања да би се генерисала јединствена вредност. Неки примери алгоритама за хеширање су бцрипт, сцрипт и СХА. Лоша страна хеширања је та што је предвидљиво.

Сваки пут када проследите исти улаз алгоритму хеширања, он ће генерисати исти излаз. Хакер са приступом хешираној лозинки може обрнути инжењеринг енкрипције да би добио оригиналну лозинку. Они могу користити технике као што су напади грубом силом или дугиних таблица. Овде долази до сољења.

Шта је слање лозинки?

Сољење лозинке додаје насумични низ (сол) у лозинку пре него што је хешује. На овај начин, генерисани хеш ће увек бити другачији сваки пут. Чак и ако хакер добије хеширану лозинку, за њега је непрактично да открије оригиналну лозинку која ју је генерисала.

instagram viewer

Како користити бцрипт за хеширање и верификацију лозинке

бцрипт је нпм модул који поједностављује слање и хеширање лозинки.

Корак 1: Инсталирајте бцрипт

Коришћење нпм-а:

нпм инсталирај бцрипт

Коришћење предива:

пређе додати бцрипт

Корак 2: Увезите бцрипт

конст бцрипт = захтевају("бцрипт")

Корак 3: Направите со

Да бисте направили со, позовите бцрипт.генСалт() методом. Овај метод прихвата целобројну вредност која је фактор трошкова који одређује време потребно за хеширање лозинке. Што је већи фактор трошкова, то је алгоритам потребно више времена и теже је обрнути хеш коришћењем грубе силе. Добра вредност треба да буде довољно висока да заштити лозинку, али и довољно ниска да не успори процес. Обично се креће између 5 и 15. У овом водичу користићемо 10.

бцрипт.генСалт (10, (грешка, сол) => {
// користитисодохасхЛозинка
})

Корак 4: Хеширајте лозинку

Проследите обичну лозинку и генерисану со на хасх() метод:

бцрипт.генСалт (10, (грешка, сол) => {
бцрипт.хасх (плаинтектПассворд, сол, функција(грешка, хеш) {
// Чувајте хеш у бази података
});
})

Када генеришете хеш, сачувајте га у бази података. Користићете га за верификацију лозинке и аутентификацију корисника који покушава да се пријави.

Уместо да одвојено генеришете со и хеш, такође можете аутоматски да генеришете со и хеш користећи једну функцију.

бцрипт.хасх (плаинтектПассворд, 10, функција(грешка, хеш) {
// чува хеш у бази података
});

Корак 5: Упоредите лозинке користећи бцрипт

До аутентификују кориснике, мораћете да упоредите лозинку коју они дају са оном у бази података. бцрипт.цомпаре() прихвата лозинку обичног текста и хеш који сте сачували, заједно са функцијом повратног позива. Тај повратни позив обезбеђује објекат који садржи све грешке које су се десиле и укупан резултат поређења. Ако се лозинка поклапа са хешом, резултат је тачан.

бцрипт.цомпаре (плаинтектПассворд, хасх, функција(грешка, резултат) {
ако (резултат) {
// лозинка је важећа
}
});

Коришћење Асинц/Аваит

Можете да хеширате и верификујете лозинке користећи асинц/аваит на следећи начин.

асинцфункцијахасхПассворд(плаинтектПассворд) {
конст хасх = чекати бцрипт.хасх (плаинтектПассворд, 10);
// Чувајте хеш у бази података
}

// упореди лозинку
асинцфункцијацомпареПассворд(плаинтектЛозинка, хеш) {
конст резултат = чекати бцрипт.цомпаре (плаинтектПассворд, хасх);
повратак резултат;
}

Коришћење обећања

Библиотека бцрипт такође подржава употребу обећања.

функцијахасхПассворд(плаинтектПассворд) {
бцрипт.хасх(плаинтектПассворд, 10)
.онда (хеш => {
// Чувајте хеш у бази података
})
.улов(ерр => {
конзола.лог (грешка)
})
}

функцијацомпареПассворд(плаинтектЛозинка, хеш) {
бцирпт.упоредити(плаинтектПассворд, хасх)
.онда (резултат => {
повратак резултат
})
.улов(ерр => {
конзола.лог (грешка)
})
}

Хаширање и сољење је лака победа

Можете користити библиотеку бцрипт за хеширање и верификацију лозинки у Ноде.јс. Хеширање лозинки минимизира шансе да их сајбер криминалци користе за приступ осетљивим подацима или услугама. Слање хешираних лозинки их чини још сигурнијим. Осим хеширања, увек проверите снагу лозинке као додатну меру безбедности.

8 најчешћих трикова који се користе за хаковање лозинки

Реад Нект

ОбјавиТвеетОбјавиЕмаил

Повезане теме

  • Програмирање
  • Безбедност
  • Програмирање
  • ЈаваСцрипт
  • Безбедност
  • Алгоритми

О аутору

Мари Гатхони (Објављено 21 чланака)

Мери Гатони је програмер софтвера са страшћу за стварање техничког садржаја који није само информативан већ и привлачан. Када не кодира или пише, ужива у дружењу са пријатељима и на отвореном.

Више од Мари Гатхони

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили