Как зашифровать и расшифровать строку в PHP?

Kak Zasifrovat I Rassifrovat Stroku V Php



Шифрование это процесс преобразования данных в секретный код или формат, непонятный тем, у кого нет ключа для его расшифровки. Расшифровка — это процедура получения этой информации и возвращения ее в исходный читаемый формат. В PHP, шифрование, и расшифровка может использоваться для защиты конфиденциальных данных, таких как пароли, информация о кредитной карте и другие личные данные.

шифрование Алгоритм должен принимать строку данных, которые вы хотите зашифровать, и использовать выбранный метод шифрования для шифрования данных. Затем алгоритм должен вернуть зашифрованные данные в формате, который можно сохранить в базе данных или файле.

К расшифровать данные, вы должны использовать тот же метод шифрования для расшифровки данных, который использовался для их шифрования. Это означает, что вам нужно будет где-то хранить ключ, чтобы вы могли использовать его для декодирования данных позже.







Как зашифровать и расшифровать строку PHP?

Строка PHP может быть зашифрованный и расшифрован используя openssl_encrpyt() и openssl_decrypt() методы соответственно.



Зашифровать строку с помощью функции openssl_encrypt()

К зашифровать строку в PHP с помощью openssl_encrypt() вам необходимо предоставить строку открытого текста, метод шифрования и ключ. Функция вернет зашифрованные данные, которые вы затем сможете безопасно сохранить или передать.



Синтаксис для openssl_encrypt() метод:





строка openssl_encrypt ( нить $данные , нить $метод , нить $ключ , $опции '=' 0 , нить $iv , нить $тег '=' НУЛЕВОЙ , нить $ ты , инт $tag_length '=' 16 )
  • $данные: Строка или данные, которые вы хотите зашифровать.
  • $метод: Метод шифрования или шифр, который вы хотите использовать. Вы можете получить список поддерживаемых методов шифрования с помощью openssl_get_cipher_methods()
  • $ключ: Ключ шифрования, который будет использоваться для шифрования данных. Это должна быть строка соответствующей длины и случайности, основанная на выбранном методе шифрования.
  • $опции: Необязательный параметр, который может включать дополнительные флаги для определенных параметров шифрования. Вы можете комбинировать флаги, используя побитовое ИЛИ (|) Общие флаги включают OPENSSL_RAW_DATA и OPENSSL_ZERO_PADDING .
  • $iv: Вектор инициализации (iv), используемый для шифрования; это должно быть случайное и уникальное значение, представленное в виде строки.
  • $тег: Необязательный параметр, используемый для режимов шифрования AEAD (аутентифицированное шифрование со связанными данными), например GCM (режим Галуа/счетчик) или CCM (счетчик с CBC-MAC). Он хранит тег аутентификации, сгенерированный во время шифрования.
  • Твой: Дополнительные аутентифицированные данные, которые можно использовать для режимов шифрования AEAD.
  • $tag_length: Длина тега аутентификации. Для режима GCM длина тега составляет от 4 до 16 байт.

Например:


$простая_строка '=' 'Добро пожаловать в Линуксхинт \n ' ;
эхо 'Исходная строка:' . $простая_строка ;
$шифрование '=' 'АЭС-128-ЦТР' ;
$iv_length '=' openssl_cipher_iv_length ( $шифрование ) ;
$опции '=' 0 ;
$шифрование_iv '=' '1234567891011121' ;
$шифрование_ключ '=' 'Линукс' ;
$шифрование '=' openssl_encrypt ( $простая_строка , $шифрование ,
$шифрование_ключ , $опции , $шифрование_iv ) ;
эхо «Зашифрованная строка:» . $шифрование . ' \n ' ;
?>

Код сначала объявляет основной текст «Добро пожаловать в Linuxhint» и использует команду echo, чтобы показать это. Затем он указывает алгоритм шифрования, который будет использоваться, АЕС-128-CTR . Он также использует openssl_cipher_iv_length() Функция для расчета размера вектор инициализации (IV) нужно для этого шифра.



Код устанавливает шифрование IV ценность для ‘1234567891011121’ и ключ шифрования для «Линукс» . Затем зашифрованная строка отображается с помощью команды echo после завершения шифрования с использованием команды openssl_encrypt() функция. Из-за случайного вектора инициализации, используемого для шифрования, окончательная зашифрованная строка будет каждый раз меняться.

Расшифровать строку с помощью функции openssl_decrypt()

Чтобы расшифровать строку в PHP, вы можете использовать openssl_decrypt() функция. Эта функция принимает зашифрованные данные, метод шифрования и ключ в качестве входных данных и возвращает расшифрованный открытый текст.

Синтаксис для openssl_decrypt() метод:

строка openssl_decrypt ( нить $данные , нить $метод , нить $ключ , инт $опции '=' 0 , нить $iv , нить $тег , нить $ ты )

В функцию передаются следующие аргументы:

  • $данные: Зашифрованная строка или данные, которые вы хотите расшифровать.
  • $метод: Метод шифрования или шифр, используемый во время шифрования. Вы можете получить список поддерживаемых методов шифрования с помощью openssl_get_cipher_methods()
  • $ключ: Ключ шифрования, который использовался для шифрования данных. Он должен совпадать с ключом, используемым при шифровании.
  • $опции: Необязательный параметр, который может включать дополнительные флаги для определенных параметров расшифровки. Вы можете комбинировать флаги с помощью оператора побитового ИЛИ (|). Общие флаги включают OPENSSL_RAW_DATA и OPENSSL_ZERO_PADDING .
  • $iv: вектор инициализации (IV) используется во время шифрования. Это должен быть тот же IV, который использовался при шифровании и передавался в виде строки.
  • $тег: Тег проверки подлинности для режимов шифрования AEAD (аутентифицированное шифрование со связанными данными), например GCM (режим Галуа/счетчик) или CCM (счетчик с CBC-MAC). Если аутентификация не удалась, openssl_decrypt() вернет FALSE.
  • Твой: Дополнительные проверенные данные, которые использовались во время шифрования для режимов шифрования AEAD.

Возвращаемое значение: В случае успеха возвращается расшифрованная строка; в противном случае возвращается ЛОЖЬ.

Например:


$ зашифрованная_строка '=' 'рКаеЫсЯНжкВбРПмЖизрдХ0ксутЛЕ' ;
эхо «Зашифрованная строка:» . $ зашифрованная_строка . ' \n ' ;
$decryption_iv '=' '1234567891011121' ;
$шифрование '=' 'АЭС-128-ЦТР' ;
$опции '=' 0 ;
$decryption_key '=' 'Линукс' ;
$расшифровка '=' openssl_decrypt ( $ зашифрованная_строка , $шифрование ,
$decryption_key , $опции , $decryption_iv ) ;
эхо 'Расшифрованная строка:' . $расшифровка ;
?>

Длина вектора в этом коде вычисляется с использованием openssl_cipher_iv_length() функции, и при шифровании используются те же параметры шифрования iv и ключ. Алгоритм шифрования определяется как АЕС-128-CTR .

Ранее зашифрованная строка расшифровывается с использованием алгоритма шифрования, ключа шифрования, настроек и значений IV с помощью openssl_decrypt() функция. Результирующий расшифрованный текст затем отображается с помощью команды echo.

Заключение

Создание веб-сайтов часто требует шифрование и дешифрование данные. Используя шифрование для защиты конфиденциальных данных, вы можете не подвергать своих пользователей риску кражи личных данных, мошенничества и других угроз безопасности. Строки в PHP могут быть зашифрованы и расшифрованы с помощью функций openssl_encrypt() и openssl_decrypt() функции. Тщательно используя алгоритм шифрования и ключ, вы можете создать надежную и безопасную систему для обработки конфиденциальных данных в ваших PHP-приложениях.