encodeString
Compartilhado
Codifica ou cifra um texto com um algoritmo: TEA, AES-128, RSA, Base64, Base32 ou zlib.
string|bool encodeString(string algorithm, string data [, table options = nil, function callback = nil])
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| algorithm | string | "tea", "aes128", "rsa", "base64", "base32" ou "zlib". |
| data | string | O texto a codificar. |
| options | table | Uma tabela de opções: key, variant ou, para zlib, format ("gzip" por padrão, "zlib", "raw" ou um windowBits), compression (0 a 9, 9 por padrão) e strategy ("default", "filtered", "huffman", "rle", "fixed").padrão nil |
| callback | function | Se dada, o trabalho roda em segundo plano e a função recebe o resultado (ou false) quando termina.padrão nil |
Retorno
O resultado (com aes128, o texto cifrado e o vetor de inicialização de 16 bytes, que decodeString precisa). Com callback, true logo de cara. false se as opções são inválidas ou a operação falhou.
Algoritmos
options é obrigatório para "tea", "aes128" e "rsa".
| Algoritmo | Opções |
|---|---|
"tea" |
Chave em key; só os 16 primeiros bytes contam. |
"aes128" |
AES-128 em modo CTR; key precisa ter exatamente 16 bytes. |
"rsa" |
key traz a chave pública para codificar e a privada para decodificar. |
"base64" |
variant = "URL" opcional para o alfabeto de URL. |
"base32" |
variant = "HEX" opcional para o alfabeto hexadecimal. |
"zlib" |
format opcional ("gzip" por padrão, "zlib", "raw" ou windowBits), compression (0–9, padrão 9) e strategy. |
Exemplo
local key = "0123456789abcdef"
local cipher, iv = encodeString("aes128", "mensagem secreta", { key = key })
local plain = decodeString("aes128", cipher, { key = key, iv = iv })