Moduł:Sandbox/Ksawi999/Koduj: Różnice pomiędzy wersjami
| [wersja nieprzejrzana] | [wersja nieprzejrzana] |
d poprawka |
d poprawka |
||
| Linia 54: | Linia 54: | ||
local l = 1 | local l = 1 | ||
while string.byte(str,i) ~= x do | while string.byte(str,i) ~= x do | ||
local x = | local x = (l + codeKey + i * 3) % 86 + 40 | ||
l = l + 1 | l = l + 1 | ||
end | end | ||
Wersja z 20:56, 12 lut 2021
Moduł służy do kodowania i dekodowania tekstu. Posiada on dwie funkcje: code (kodującą) i decode (dekodującą). Szablon implementujący ten moduł posiada również funkcję repair, która pozwala na "naprawienie" kodu przestarzałego lub zakodowanego w inny sposób. Pierwszy parametr (po nazwie funkcji) to tekst, który moduł ma zakodować, drugi parametr to klucz kodowania, a trzeci, opcjonalny parametr dotyczy sposobu kodowania (c, / lub * i ich dowolne kombinacje) i nie będzie uwzględniony przy dekodowaniu (aby rozkodować tekst nie trzeba pamiętać jakim sposobem się go zakodowało). Sposób kodowania "c" optymalizuje tekst do skopiowania i użycia w innym, niezależnym szablonie (zamienia | na | i = na =). Sposób kodowania "/" dodaje do zakodowanego tekstu rozdzielacze (//) w miejscach, w których występujące po sobie znaki tworzą tekst, który może zaburzyć działanie szablonu (podwójne nawiasy klamrowe) lub jest znakiem specjalnym (// lub **). Sposób kodowania "*" pozwala na zakodowanie znaków, których kod ASCII jest większy niż 126, np. polskich znaków. Kolejność znaków odpowiadających sposobie kodowania nie ma znaczenia.
Plusy modułu
- Szybki, wygodny i prosty w użyciu.
- Intuicyjny.
- Posiada zaawansowany system zabezpieczeń (przy użyciu szablonu Użytkownik:Ksawi999/sandbox/Lua/koduj, system ten jest jeszcze lepszy).
- Szansa na znalezienie klucza wynosi mniej niż 1/200000000 (gdy będą brane pod uwagę wszystkie klucze do długości 1000000 znaków).
- Możliwości na stworzenienie klucza jest praktycznie nieskończoność.
Plusy użycia szablonu (Użytkownik:Ksawi999/sandbox/Lua/koduj)
- Posiada bardzo przydatną funkcję - repair, która "naprawia" kod zakodowany innym sposobem (zakodowany tym modułem lub szablonem).
- Najbardziej zaawansowany system zabezpieczeń w internecie.
- Nikt oprócz ciebie nie może używać tego szablonu na twojej stronie użytkownika.
- Szablon generuje klucz automatycznie.
Minusy modułu
- Niemożliwe jest zakodowanie tekstu sformatowanego znacznikami HTML (ale wszystko inne już tak).
- Najprawdopodobniej ma jeszcze błędy (jeśli jakiś znalazłeś, proszę, abyś się ze mną skontaktował, np. na mojej dyskusji).
local p = {}
function p.code( data )
local str = data.args[1]
if str == nil then
return "nic"
end
local key = data.args[2]
if key == nil then
key = "!"
end
local codeKey = 0
local i1 = 1
while i1 <= key:len()
do
codeKey = codeKey + string.byte(key,i1)
i1 = i1 + 1
end
codeKey = codeKey % 126
local result = ""
local i = 1
while i <= str:len()
do
result = result..string.char((string.byte(str,i) + codeKey + i * 3) % 86 + 40)
i = i + 1
end
return result
end
function p.decode( data )
local str = data.args[1]
if str == nil then
return "nic"
end
local key = data.args[2]
if key == nil then
key = "!"
end
local codeKey = 0
local i1 = 1
while i1 <= key:len()
do
codeKey = codeKey + string.byte(key,i1)
i1 = i1 + 1
end
codeKey = codeKey % 126
local result = ""
local i = 1
while i <= str:len()
do
local l = 1
while string.byte(str,i) ~= x do
local x = (l + codeKey + i * 3) % 86 + 40
l = l + 1
end
result = result..l
i = i + 1
end
return result
end
return p