Advertisement
Imgoodisher

Encryption

May 27th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.17 KB | None | 0 0
  1. local tArgs = {...}
  2.  
  3. local digits = {}
  4. for i=0,9 do digits[i] = string.char(string.byte('0')+i) end
  5. for i=10,36 do digits[i] = string.char(string.byte('A')+i-10) end
  6.  
  7. local function tobinary(number)
  8.     local base = 2
  9.     local s = ""
  10.     repeat
  11.         local remainder = number % base
  12.         s = digits[remainder]..s
  13.         number = (number-remainder)/base
  14.     until number==0
  15.     return s
  16. end
  17.  
  18. local function tolen(str, len, char)
  19.     if str:len() < len then
  20.         return string.rep(char, len - str:len()) .. str
  21.     else
  22.         return str
  23.     end
  24. end
  25.  
  26. function encrypt(str)
  27.     local binary = ""
  28.     for i = 1, str:len() do
  29.         binary = binary .. tolen(tobinary(string.byte(str:sub(i, i))), 8, "0")
  30.     end
  31.     binary = "1" .. binary .. "0000111"
  32.     local newstr = ""
  33.     for i = 1, binary:len(), 8 do
  34.         newstr = newstr .. string.char(tonumber(binary:sub(i, i+7), 2))
  35.     end
  36.     return newstr
  37. end
  38.  
  39. function decrypt(str)
  40.     local binary = ""
  41.     for i = 1, str:len() do
  42.         binary = binary .. tolen(tobinary(string.byte(str:sub(i, i))), 8, "0")
  43.     end
  44.     binary = string.sub(binary, 2, -7)
  45.     local newstr = ""
  46.     for i = 1, binary:len(), 8 do
  47.         newstr = newstr .. string.char(tonumber(binary:sub(i, i+7), 2))
  48.     end
  49.     return newstr
  50. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement