Расшифровывает данные

# openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_decrypt — Расшифровывает данные

### Описание

function openssl_decrypt(
string `$data`,
string `$cipher_algo`,
#[\SensitiveParameter]string `$passphrase`,
int `$options` = 0,
string `$iv` = "",
?string `$tag` = `null`,
string `$aad` = ""
): string|false

Функция берёт необработанную или кодированную в base64 строку и расшифровывает её заданным методом и кодовой фразой.

### Список параметров

`data`

  Данные для расшифровки.

`cipher_algo`

  Метод шифрования. Список доступных методов возвращает функция openssl_get_cipher_methods().

`passphrase`

  Кодовая фраза. Если кодовая фраза короче, чем ожидалось, она заполняется символами `NUL`; если кодовая фраза длиннее, чем ожидалось, она усекается.

  Предостережение

  Для параметра `passphrase` не используется функция извлечения ключа, как можно предположить из его названия. Единственная операция, которая используется, – это заполнение символами `NUL` или усечение, если длина отличается от ожидаемой.

`options`

  `options` можно задать одной из констант: `OPENSSL_RAW_DATA`, `OPENSSL_ZERO_PADDING` или `OPENSSL_DONT_ZERO_PAD_KEY`.

`iv`

  Ненулевой (non-`null`) инициализирующий вектор. Если IV короче, чем ожидалось, он заполняется символами `NUL` и выдаётся предупреждение; если кодовая фраза длиннее, чем ожидалось, он усекается и выдаётся предупреждение.

`tag`

  Тег аутентификации в режиме шифрования AEAD. Если он некорректен, то аутентификация завершится неудачей и функция вернёт `false`.

  Предостережение

  Длина `tag` не проверяется функцией. Вызывающая сторона несёт ответственность за то, чтобы длина тега соответствовала длине тега, полученного при вызове openssl_encrypt(). В противном случае дешифрование может быть успешным, если данный тег совпадает только с началом правильного тега.

`aad`

  Дополнительные аутентифицированные данные.

### Возвращаемые значения

Функция возвращает расшифрованную строку или `false`, если возникла ошибка.

### Ошибки

Функция выдаёт ошибку уровня `E_WARNING`, если в параметр `cipher_algo` передали неизвестный алгоритм шифрования.

Функция выдаёт ошибку уровня `E_WARNING`, если в параметр `iv` передали пустое значение.

### Список изменений

Версия | Описание
--- | ---
8.1.0 | Параметр `tag` теперь принимает значение null.
7.1.0 | Добавили параметры `tag` и `aad`.

### Смотрите также

- openssl_encrypt() - Шифрует данные

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open