function decrypt(message, exp, map)
local inv = 1.0 / exp -- because f*ck root calculation
local str = ""
local byte = 0
for i = 1, #message do
byte = byte * 256 -- lazy lshift8
if type(message) == "table" then
byte = byte + message[i]
else
byte = byte + tostring(message):byte(i)
end
local char = map[byte ^ inv]
if char then
str = str .. char
byte = 0
end
end
return str
end
local map = {}
-- map values between '0' and '9'
for i = string.byte("0"), string.byte("9") do
map[i] = string.char(i)
end
-- map values between 'A' and 'Z', and 'a' and 'z'
for i = string.byte("A"), string.byte("Z") do
map[i] = string.char(i)
map[i + 32] = string.char(i + 32)
end
local encrypted = {39, 16, 36, 193, 45, 144, 54, 100, 48, 33}
print(decrypt(encrypted, 2, map))










info
Grupo: Conde
Registrado: 21/12/11
Posts: 750
Reputação: +268
Gênero: Masculino
Olá meus caros, venho lhes propor um desafio.
Sinceramente não espero que alguém consiga, ficarei realmente impressionado se alguém conseguir uma solução, mas vamos lá.
WhSaFZDQ[/pastebin]
A função acima codifica uma determinada string, ela pega o numero do byte, eleva a 'e', e transforma esse numero em outros bytes, concatenando na sequencia da string 'str'. A função foi feita por mim hoje, e o meu desafio é: "Façam uma função, que desfaça a criptografia gerada pela minha função".
Tem que ser genial para conseguir uma solução diferente de um bruteforce kk
Então fica ai o desafio, boa sorte!
OBS.: Não necessita que seja em lua
Editado Abril 22 por dalvorsn