Простое шифрование данных в PHP с помощью OpenSSL
Доброго времени суток! Сегодня мы рассмотрим с Вами простой пример того, как можно зашифровать и дешифровать данные в PHP с помощью модуля OpenSSL.
OpenSSL - это библиотека криптографических функций, которая предоставляет различные методы шифрования, хеширования, генерации ключей, аутентификации и другие криптографические возможности. Она является одной из самых распространенных библиотек для работы с безопасностью в сети, и используется во множестве программ и языков программирования, включая PHP.
В PHP OpenSSL предоставляет функции для работы с протоколами SSL (Secure Sockets Layer) и TLS (Transport Layer Security), а также для криптографических операций, таких как шифрование, дешифрование, хеширование, подписывание и верификация данных.
Некоторые из наиболее распространенных операций, которые можно выполнить с помощью OpenSSL в PHP, включают:
Шифрование и дешифрование данных: OpenSSL предоставляет функции, такие как openssl_encrypt() и openssl_decrypt(), для шифрования и дешифрования данных с использованием различных алгоритмов шифрования, таких как AES, 3DES и других.
Хеширование данных: OpenSSL позволяет создавать хеши данных с использованием различных алгоритмов хеширования, таких как SHA-256, SHA-512 и другие, с помощью функции openssl_digest().
Работа с сертификатами и ключами: OpenSSL позволяет создавать, импортировать и экспортировать SSL/TLS сертификаты и закрытые ключи, а также выполнять операции подписи и проверки сертификатов.
Аутентификация и безопасность соединений: OpenSSL предоставляет возможность установления безопасного соединения между клиентом и сервером с использованием SSL/TLS протоколов, а также для аутентификации клиента и сервера при подключении.
Генерация криптографических случайных чисел: OpenSSL обеспечивает генерацию криптографически стойких случайных чисел, которые могут использоваться для создания случайных ключей и инициализационных векторов.
Теперь рассмотрим пример использования OpenSSL в PHP:
<?php
function encryptNumberWithSalt($number, $salt, $key)
{
// Совмещаем число с солью
$data = $salt . $number;
// Обрезаем соль, если ее длина превышает 8 байт
$salt = substr($salt, 0, 8);
// Шифруем с использованием 3DES
$encrypted = openssl_encrypt($data, 'des-ede3-cbc', $key, 0, $salt);
// Кодируем в base64
$encoded = base64_encode($encrypted);
return $encoded;
}
function decryptStringWithSalt($encoded, $salt, $key)
{
// Декодируем из base64
$decoded = base64_decode($encoded);
// Обрезаем соль, если ее длина превышает 8 байт
$salt = substr($salt, 0, 8);
// Дешифруем с использованием 3DES
$decrypted = openssl_decrypt($decoded, 'des-ede3-cbc', $key, 0, $salt);
// Извлекаем число
$number = substr($decrypted, strlen($salt));
return $number;
}
// Пример использования
$number = 'строка для шифрования';
$salt = "a1z2Qqae";
$key = "MyRusakov2024";
// Шифруем число с солью и ключом
$encryptedString = encryptNumberWithSalt($number, $salt, $key);
echo "Зашифрованная строка: $encryptedString\n";
// Дешифруем строку обратно в исходное число
$decryptedNumber = decryptStringWithSalt($encryptedString, $salt, $key);
echo "Дешифрованное число: $decryptedNumber\n";
Таким образом, выше мы рассмотрели только самый простой способ шифрования данных с использованием библиотеки OpenSSL.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.