Menu
CoddyTech

Байты и шестнадцатеричный текст

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

Криптографические функции работают с байтами. Байт — это число от 0 до 255. UTF-8 кодирует текст в виде байтов, а Buffer хранит эти байты в Node. Шестнадцатеричная система, или hex, записывает каждый байт двумя символами, используя цифры от 0 до 9 и буквы от a до f. Благодаря этому байты удобно хранить в виде текста.

const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'

Байт буквы O — это 79 в десятичной системе счисления; в hex он записывается как 4f.

Это преобразование обратимо: оно меняет представление, а не информацию. Кодирование пароля в hex не защищает его. Парольную хеш-функцию проверяют, заново вычисляя производное значение, а не декодируя его. Здесь входные данные — обычный текст, а упражнение возвращает их представление в hex, чтобы ты мог сравнить обе формы.

challenge icon

Задание

Легко

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

Верни поле hex, содержащее переданный текст, закодированный в байты UTF-8, а затем в шестнадцатеричном формате. Отправка {"text":"Hi"} методом POST на /result вернёт {"hex":"4869"}. Для текста Ada результатом будет 416461.

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

export function exercise({ text }) {
    return { hex: text };
}

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

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