Что такое шифрование?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Шифрование - это процесс преобразования читаемой информации (открытого текста) в нечитаемый формат (шифротекст) с помощью криптографического алгоритма и ключа. Цель - обеспечить конфиденциальность данных, чтобы только авторизованные лица могли их прочитать, используя соответствующий ключ для расшифровки.
Существует два основных типа шифрования:
-
Симметричное шифрование: Используется один и тот же ключ как для шифрования, так и для расшифровки. Скорость высокая, но проблема в безопасной передаче ключа. Примеры: AES, DES.
<?php // Пример симметричного шифрования (упрощенный, только для демонстрации концепции) $key = 'ключ123'; $plaintext = 'Секретное сообщение'; // Предполагаем простую функцию шифрования (не использовать в продакшене) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // Пример операции XOR } // Предполагаем простую функцию расшифровки (не использовать в продакшене) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // Пример операции XOR } $ciphertext = simple_encrypt($plaintext, $key); echo "Зашифровано: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Расшифровано: " . $decryptedtext . "\n"; ?> -
Асимметричное шифрование (шифрование с открытым ключом): Используется пара ключей: открытый ключ для шифрования и закрытый (приватный) ключ для расшифровки. Открытый ключ может быть распространен свободно, а закрытый ключ хранится в секрете. Скорость ниже, чем у симметричного. Примеры: RSA, ECC.
<?php // Пример асимметричного шифрования (упрощенный, только для демонстрации концепции RSA) // На практике используются функции PHP для OpenSSL (openssl_public_encrypt, openssl_private_decrypt и т.д.) // Генерация ключей (сложный процесс) // $privateKey = ... // $publicKey = ... $plaintext = 'Другое секретное сообщение'; // Шифрование открытым ключом // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Зашифровано (асимметрично): " . base64_encode($ciphertext) . "\n"; // Расшифровка закрытым ключом // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Расшифровано (асимметрично): " . $decryptedtext . "\n"; // В реальном коде использовались бы функции OpenSSL ?>
Шифрование применяется для защиты данных при хранении (encryption at rest) и при передаче (encryption in transit), например, в SSL/TLS протоколах веб-сайтов.