539просмотров
7.4%от подписчиков
21 марта 2026 г.
Score: 593
Crypto — защита данных и хеширование паролей в Node.js 🔐 Безопасность — это не то, на чем стоит экономить. Если ты хранишь пароли пользователей в базе данных в виде обычного текста, любой взлом превратится в катастрофу. Встроенный модуль crypto предоставляет всё необходимое для шифрования, создания хешей и генерации случайных ключей. Шаг 1 — создаем хеш (например, SHA-256):
Хеширование — это необратимый процесс. Ты не можешь «расшифровать» хеш обратно в пароль, но можешь сравнить два хеша. const crypto = require('crypto'); const secret = 'my-ultra-safe-password';
const hash = crypto.createHmac('sha256', 'a-secret-salt') .update(secret) .digest('hex'); console.log(hash); // 752884a... (длинная строка) Зачем это нужно? 🚀 — Хранение паролей: Всегда используй «соль» (salt) — случайную строку, которая добавляется к паролю перед хешированием. Это защищает от взлома по словарям. 🛡️
— Проверка целостности: Когда ты качаешь файл, ты можешь вычислить его контрольную сумму (checksum) и сравнить с оригиналом, чтобы убедиться, что файл не поврежден. 📦
— Генерация токенов: Нужно создать уникальный ID для сессии или сброса пароля? Используй криптографически стойкие случайные числа. Методы-инструменты: 📝 — crypto.randomBytes(size) — генерирует случайные байты. Намного безопаснее, чем Math.random(). 🎲
— crypto.createCipheriv / createDecipheriv — для симметричного шифрования (когда один ключ и закрывает, и открывает данные).
— crypto.pbkdf2 — стандарт для медленного (а значит, более защищенного) хеширования паролей. 🏗️
— crypto.scrypt — еще один современный и надежный алгоритм хеширования, устойчивый к подбору на GPU. Пример генерации безопасного токена:
const token = crypto.randomBytes(32).toString('hex');
console.log(Твой секретный токен: ${token}); > Важный нюанс: Для реальных паролей в 2026 году лучше использовать scrypt или внешние либы типа bcrypt / argon2. Они специально сделаны «тяжелыми», чтобы злоумышленникам было дорого перебирать пароли на своих фермах. ✅ ⚙ Backend Ready | #уроки