Aller au contenu

base-encoding: Une alternative plus rapide à l'encodage base64 et fournit l'encodage de base manquant pour l'application nginx-module-lua

Installation

Si vous n'avez pas configuré l'abonnement au dépôt RPM, inscrivez-vous. Ensuite, vous pouvez procéder avec les étapes suivantes.

CentOS/RHEL 7 ou 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

Pour utiliser cette bibliothèque Lua avec NGINX, assurez-vous que nginx-module-lua est installé.

Ce document décrit lua-resty-base-encoding v1.3.0 publié le 21 juillet 2018.


encode_base2

syntax: encoded = encode_base2(raw)

Encode la chaîne donnée au format base2 (également connu sous le nom de format binaire). Notez que l'entrée est une chaîne. Par conséquent, le résultat de encode_base2 pour 1 est 00110001, car la valeur ascii de 1 est 49, et le format binaire de 49 est 00110001. Et n'oubliez pas que la sortie de encode_base2 est une chaîne plutôt qu'un nombre binaire.

decode_base2

syntax: raw, err = decode_base2(encoded)

Décode la chaîne au format base2 en sa valeur brute. Si la chaîne donnée n'est pas correctement encodée en base2, raw sera nil et err sera "invalid input". Tout caractère dans la chaîne d'entrée qui n'est pas 1 sera considéré comme 0. Par exemple, aa11aaa1 est égal à 00110001. Il n'y a pas de RFC qui exige que nous considérions les caractères autres que 0 et 1 comme une entrée invalide, et vérifier si un caractère est '0' ou non ralentira les performances de 50%.

encode_base16

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

Encode la chaîne donnée au format base16 (également connu sous le nom de format hex/hexadécimal). Cette méthode peut être nommée to_hex ou encodeHex dans d'autres langages. Les lettres de sortie par défaut sont en [0-9A-F]. Si vous spécifiez out_in_lowercase à true, la sortie sera en [0-9a-f].

decode_base16

syntax: raw, err = decode_base16(encoded)

Décode la chaîne au format base16 (également connu sous le nom de format hex/hexadécimal) en sa valeur brute. Cette méthode peut être nommée from_hex ou decodeHex dans d'autres langages. Si la chaîne donnée n'est pas correctement encodée en base16, raw sera nil et err sera "invalid input". Les lettres en [0-9a-fA-F] sont considérées comme valides.

encode_base32

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

Encode la chaîne donnée au format base32 avec/sans remplissage '='. La valeur par défaut de no_padding est false.

decode_base32

syntax: raw, err = decode_base32(encoded)

Décode la chaîne au format base32 en sa valeur brute. Si la chaîne donnée n'est pas correctement encodée en base32, raw sera nil et err sera "invalid input".

encode_base32hex

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

Encode la chaîne donnée au format base32hex avec/sans remplissage '='. La valeur par défaut de no_padding est false. Pour plus d'informations sur le format base32hex, voir https://tools.ietf.org/html/rfc4648#section-7.

decode_base32hex

syntax: raw, err = decode_base32(encoded)

Décode la chaîne au format base32hex en sa valeur brute. Si la chaîne donnée n'est pas correctement encodée en base32hex, raw sera nil et err sera "invalid input". Pour plus d'informations sur le format base32hex, voir https://tools.ietf.org/html/rfc4648#section-7.

encode_base64

decode_base64

encode_base64url

decode_base64url

Alternative directe à l'implémentation officielle dans lua-resty-core. Lisez leur documentation officielle à la place. La méthode d'encodage est 40% plus rapide, et la méthode de décodage est 200% plus rapide. Notez que l'implémentation dépend de l'endianness et de l'architecture. Lisez la section 'Must Read' pour plus d'informations.

encode_base85

syntax: encoded = encode_base85(raw)

Encode la chaîne donnée au format base85 avec/sans remplissage '='. Notez qu'il n'existe pas de standard mais trop de variantes de ce qu'on appelle base85. L'implémentation de ce module devrait être compatible avec le module Go's encoding/ascii85 (pas au niveau des arguments d'API, mais au niveau des règles d'encodage/décodage).

decode_base85

syntax: raw, err = decode_base85(encoded)

Décode la chaîne au format base85 en sa valeur brute. Si la chaîne donnée n'est pas correctement encodée en base85, raw sera nil et err sera "invalid input".

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-base-encoding.