Ответ
Симметричная криптография — это метод шифрования, где для зашифровки и расшифровки данных используется один и тот же ключ.
Особенности:
- Высокая скорость работы (по сравнению с асимметричной)
- Подходит для шифрования больших объемов данных
- Требует безопасного обмена ключами между сторонами
Пример (AES в JavaScript):
const crypto = require('crypto');
const algorithm = 'aes-256-cbc';
const key = crypto.randomBytes(32); // 256-битный ключ
const iv = crypto.randomBytes(16); // вектор инициализации
function encrypt(text) {
let cipher = crypto.createCipheriv(algorithm, key, iv);
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
return encrypted;
}
function decrypt(encrypted) {
let decipher = crypto.createDecipheriv(algorithm, key, iv);
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
return decrypted;
}
Используется в: HTTPS (для шифрования трафика), защите файлов, VPN.