Простое шифрование данных в PHP с помощью OpenSSL

Простое шифрование данных в PHP с помощью OpenSSL

Простое шифрование данных в 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 "Зашифрованная строка: $encryptedStringn";



// Дешифруем строку обратно в исходное число

$decryptedNumber = decryptStringWithSalt($encryptedString, $salt, $key);

echo "Дешифрованное число: $decryptedNumbern";



Таким образом, выше мы рассмотрели только самый простой способ шифрования данных с использованием библиотеки OpenSSL.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий