M MY Multiplayer: Wiki
Lado
Tipo

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

NomeTipoDescrição
algorithmstring"tea", "aes128", "rsa", "base64", "base32" ou "zlib".
datastringO texto a codificar.
optionstableUma 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
callbackfunctionSe 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 })

Veja também