set_decode_base32

Директива `set_decode_base32` декодирует строку, закодированную в Base32, в её исходную двоичную форму.

Синтаксисset_decode_base32 $output_var $input_var;
По умолчаниюnone
Контекстhttp, server, location, if in server, if in location
Аргументы1-2

Описание

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

В процессе декодирования функция проверяет длину входных данных и рассчитывает ожидаемую длину вывода по предопределённой формуле. Если входные данные не соответствуют стандартам Base32, декодирование может завершиться неудачей, что приведёт к пустой выходной переменной, указывающей на ошибку операции. В случае успешного декодирования выходная переменная будет содержать бинарные данные, которые изначально были закодированы. Директива особенно полезна в веб-приложениях и API, где часто используется Base32, и позволяет беспрепятственно обрабатывать данные, декодируя их в исходный формат для последующей обработки.

Пример конфига

server {
    location /decode {
        set $encoded_string 'MZXW6YTBOI======';
        set $decoded_string '';  
        set_decode_base32 $decoded_string $encoded_string;
        # Now $decoded_string holds the binary data of the base32 string
    }
}

Входная переменная должна содержать Base32-encoded данные, иначе вывод будет пуст.

Убедитесь, что для вывода выделено достаточно памяти; при отказе выделения памяти это приведёт к ошибкам.

← Ко всем директивам