encodeString
Compartido
Codifica o cifra un texto con un algoritmo: TEA, AES-128, RSA, Base64, Base32 o zlib.
string|bool encodeString(string algorithm, string data [, table options = nil, function callback = nil])
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| algorithm | string | "tea", "aes128", "rsa", "base64", "base32" o "zlib". |
| data | string | El texto a codificar. |
| options | table | Una tabla de opciones: key, variant o, para zlib, format ("gzip" por defecto, "zlib", "raw" o un windowBits), compression (0 a 9, 9 por defecto) y strategy ("default", "filtered", "huffman", "rle", "fixed").por defecto nil |
| callback | function | Si se da, el trabajo corre en segundo plano y la función recibe el resultado (o false) cuando termina.por defecto nil |
Retorno
El resultado (con aes128, el texto cifrado y el vector de inicialización de 16 bytes que necesita decodeString). Con callback, true de inmediato. false si las opciones no son válidas o la operación falló.
Algoritmos
options es obligatorio para "tea", "aes128" y "rsa".
| Algoritmo | Opciones |
|---|---|
"tea" |
Clave en key; solo cuentan sus primeros 16 bytes. |
"aes128" |
AES-128 en modo CTR; key debe tener exactamente 16 bytes. |
"rsa" |
key contiene la clave pública para codificar y la privada para decodificar. |
"base64" |
variant = "URL" opcional para el alfabeto de URL. |
"base32" |
variant = "HEX" opcional para el alfabeto hexadecimal. |
"zlib" |
format opcional ("gzip" por defecto, "zlib", "raw" o windowBits), compression (0–9, por defecto 9) y strategy. |
Ejemplo
local key = "0123456789abcdef"
local cipher, iv = encodeString("aes128", "mensaje secreto", { key = key })
local plain = decodeString("aes128", cipher, { key = key, iv = iv })