openssl_decrypt

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

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

Описание

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.

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