Перейти к содержанию

base-encoding: Быстрая альтернатива кодированию base64 и предоставляет недостающее базовое кодирование для приложения nginx-module-lua

Установка

Если вы еще не настроили подписку на репозиторий RPM, зарегистрируйтесь. Затем вы можете продолжить с следующими шагами.

CentOS/RHEL 7 или Amazon Linux 2

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-base-encoding

CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023

dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-base-encoding

Чтобы использовать эту библиотеку Lua с NGINX, убедитесь, что nginx-module-lua установлен.

Этот документ описывает lua-resty-base-encoding v1.3.0, выпущенную 21 июля 2018 года.


encode_base2

syntax: encoded = encode_base2(raw)

Кодирует заданную строку в формат base2 (также известный как бинарный формат). Обратите внимание, что входные данные - это строка. Поэтому результат encode_base2 для 1 будет 00110001, потому что ASCII значение 1 равно 49, а бинарный формат 49 - это 00110001. И не забудьте, что вывод encode_base2 - это строка, а не двоичное число.

decode_base2

syntax: raw, err = decode_base2(encoded)

Декодирует строку в формате base2 в ее исходное значение. Если заданная строка не является корректно закодированной в base2, raw будет nil, а err будет "invalid input". Любой символ во входной строке, который не является 1, будет считаться 0. Например, aa11aaa1 равен 00110001. Нет RFC, который требует считать символы, не входящие в 0 и 1, недопустимыми, и проверка, является ли символ '0', замедлит производительность на 50%.

encode_base16

syntax: encoded = encode_base16(raw[, out_in_lowercase])

Кодирует заданную строку в формат base16 (также известный как hex/шестнадцатеричный формат). Этот метод может называться to_hex или encodeHex в других языках. Буквы по умолчанию выводятся в [0-9A-F]. Если вы укажете out_in_lowercase как true, вывод будет в [0-9a-f].

decode_base16

syntax: raw, err = decode_base16(encoded)

Декодирует строку в формате base16 (также известный как hex/шестнадцатеричный формат) в ее исходное значение. Этот метод может называться from_hex или decodeHex в других языках. Если заданная строка не является корректно закодированной в base16, raw будет nil, а err будет "invalid input". Буквы в [0-9a-fA-F] считаются допустимыми.

encode_base32

syntax: encoded = encode_base32(raw[, no_padding])

Кодирует заданную строку в формат base32 с/без дополнения '='. Значение по умолчанию для no_padding - false.

decode_base32

syntax: raw, err = decode_base32(encoded)

Декодирует строку в формате base32 в ее исходное значение. Если заданная строка не является корректно закодированной в base32, raw будет nil, а err будет "invalid input".

encode_base32hex

syntax: encoded = encode_base32hex(raw[, no_padding])

Кодирует заданную строку в формат base32hex с/без дополнения '='. Значение по умолчанию для no_padding - false. Для получения дополнительной информации о формате base32hex смотрите https://tools.ietf.org/html/rfc4648#section-7.

decode_base32hex

syntax: raw, err = decode_base32(encoded)

Декодирует строку в формате base32hex в ее исходное значение. Если заданная строка не является корректно закодированной в base32hex, raw будет nil, а err будет "invalid input". Для получения дополнительной информации о формате base32hex смотрите https://tools.ietf.org/html/rfc4648#section-7.

encode_base64

decode_base64

encode_base64url

decode_base64url

Альтернатива официальной реализации в lua-resty-core. Читайте их официальную документацию вместо этого. Метод кодирования на 40% быстрее, а метод декодирования на 200% быстрее. Обратите внимание, что реализация зависит от порядка байтов и архитектуры. Читайте раздел 'Must Read' для получения дополнительной информации.

encode_base85

syntax: encoded = encode_base85(raw)

Кодирует заданную строку в формат base85 с/без дополнения '='. Обратите внимание, что стандарта нет, но существует слишком много вариантов так называемого base85. Реализация этого модуля должна быть совместима с модулем Go's encoding/ascii85 (не на уровне аргументов API, а на уровне правил кодирования/декодирования).

decode_base85

syntax: raw, err = decode_base85(encoded)

Декодирует строку в формате base85 в ее исходное значение. Если заданная строка не является корректно закодированной в base85, raw будет nil, а err будет "invalid input".

GitHub

Вы можете найти дополнительные советы по настройке и документацию для этого модуля в репозитории GitHub для nginx-module-base-encoding.