Menu
CoddyTech

Новая соль

Часть раздела Аутентификация и безопасность путешествия по Node.js на Coddy. Урок 3 из 24.

Люди могут выбрать один и тот же пароль. Соль — это случайные данные, которые добавляются при получении ключа для хранения пароля. Новая соль позволяет получать разные ключи хранения для одинаковых паролей. Соль хранится рядом с ключом; её не нужно держать в секрете.

const salt = randomBytes(8).toString('hex');
// 8 случайных байтов, записанных в виде 16 шестнадцатеричных символов

Создавайте соль внутри функции, которая вызывается для каждого нового пароля. Значение, созданное один раз при запуске сервера, будет использоваться повторно. Вы получили ключ с помощью фиксированной учебной соли. Теперь для хранения паролей каждый раз нужна новая соль. Здесь потренируйтесь только создавать соль и проверять длину её текстового представления — 32 символа.

randomBytes использует криптографический генератор случайных чисел. Math.random() не предназначен для значений, связанных с безопасностью. Используйте импортированную криптографическую функцию для создания соли.

challenge icon

Задание

Легко

Это небольшой практический проект. Его настройка уже выполнена; редактируй только exercise.js.

Возвращай новую случайную соль длиной 16 байт в шестнадцатеричном виде в salt. Дважды выполни GET для /result: каждый ответ содержит разную шестнадцатеричную строку из 32 символов. Не используй фиксированную соль.

Попробуйте сами

import { randomBytes } from 'node:crypto';
export function exercise() {
    return { salt: '00000000000000000000000000000000' };
}

Все уроки раздела Аутентификация и безопасность

Потренируйтесь самостоятельно: Песочница Express