- Dokumentacja
- Funkcje wspólne
- encodeString
Funkcja
encodeString
Szyfruje, koduje albo kompresuje tekst. Działa na serwerze i u gracza. Algorytmy: tea (surowe bajty TEA, bez base64), aes128 (klucz dokładnie 16 znaków; zwraca też losowy iv, potrzebny do odszyfrowania), rsa (klucz publiczny z generateKeyPair), base64 (wariant url), base32 (alfabet Crypto++, wariant hex = RFC 4648 base32hex), zlib (format gzip, zlib albo raw, stopień 0-9, strategia). Przy base64, base32 i zlib tabela opcji może zostać pominięta. Z funkcją zwrotną wynik przychodzi do niej w następnej klatce, a funkcja zwraca true.
Składnia
string encodeString(string algorithm, string input [, table options, function callback])Argumenty
algorithmstring"tea","aes128","rsa","base64","base32"albo"zlib".inputstring- Dane.
optionstable, opcjonalnytea/aes128/rsa:{ key = "..." };base64:{ variant = "url" };base32:{ variant = "hex" };zlib:{ format = "gzip"|"zlib"|"raw" albo windowBits, compression = 0-9, strategy = "default"|"filtered"|"huffman"|"rle"|"fixed" }(domyślnie gzip, 9).callbackfunction, opcjonalny- Funkcja dostaje wynik (przy
aes128takżeiv).
Zwraca
Wynik (przy aes128 także iv) albo false i ostrzeżenie.
Przykład
local key = "0123456789abcdef"
local data, iv = encodeString("aes128", "tajne dane", { key = key })
local plain = decodeString("aes128", data, { key = key, iv = iv })
-- duze dane przed wyslaniem na serwer
local packed = encodeString("zlib", toJSON(stats), { format = "zlib", compression = 6 })
triggerServerEvent("stats:save", localPlayer, packed)
Zobacz też
decodeStringOdszyfrowuje, dekoduje albo rozpakowuje dane zencodeString, także zrobione na innym serwerze. Przyaes128podajesz klucz iiv, przyrsaklucz prywatny, przyzlibformat można pominąć: gzip, zlib i raw są rozpoznawane po nagłówku. Znaki spoza alfabetubase64ibase32są pomijane. Działa na serwerze i u gracza.teaEncodeSzyfruje tekst szyfrem TEA i zwraca wynik w base64, zgodnie ze standardowym TEA używanym przez istniejące skrypty, więc wcześniej zaszyfrowane teksty odczytasz tutaj. Z klucza liczy się pierwsze 16 bajtów. TEA nie jest mocnym szyfrem; do poważnych danych użyjencodeStringzaes128.generateKeyPairTworzy parę kluczy RSA: prywatny (PKCS#8) i publiczny (X.509), oba jako dane binarne DER. Do zapisu w pliku albo bazie zamień je na tekst, np.base64Encode.encodeString/decodeStringprzyjmują też klucze PEM. Rozmiar 512-8192 bitów (domyślnie 2048; u gracza wielokrotność 64). Z funkcją zwrotną klucze przychodzą do niej.