set_decode_base32
Директива `set_decode_base32` декодирует строку, закодированную в Base32, в её исходную двоичную форму.
Описание
Директива 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 данные, иначе вывод будет пуст.
Убедитесь, что для вывода выделено достаточно памяти; при отказе выделения памяти это приведёт к ошибкам.