(PHP 5 >= 5.3.0, PHP 7, PHP 8)
openssl_decrypt — Расшифровывает данные
$data
,$cipher_algo
,$passphrase
,$options
= 0,$iv
= "",$tag
= null
,$aad
= ""Функция берёт необработанную или кодированную в 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 . |