JustDoesGames

Encoder

Apr 23rd, 2019
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.79 KB | None | 0 0
  1.  
  2. function clr() term.clear() end
  3. function cp(x,y) term.setCursorPos(x,y) end
  4.  
  5. function encrypt()
  6.     clr() cp(1,1)
  7.     write("Message: ")
  8.     strn = read()
  9.     write("Key: ")
  10.     key = read()
  11.     write("Save to /")
  12.     save = read()
  13.     print("Encrypting...")
  14.  
  15.     strn = tostring(strn)
  16.     key = tonumber(key)
  17.     if type(strn) ~= "string" then print("strn error") return end
  18.     if type(key) ~= "number" then print("key error") return end
  19.  
  20.     local cnt = 1
  21.     local encry = {}
  22.     local s_key = {}
  23.  
  24.     for character in strn:gmatch(".") do
  25.         if #encry < 1 then
  26.             encry[1] = string.byte(character)
  27.         else
  28.             encry[#encry+1] = string.byte(character)
  29.         end
  30.     end
  31.  
  32.     for character in tostring(key):gmatch(".") do
  33.         if #s_key < 1 then
  34.             s_key[1] = string.byte(character)
  35.         else
  36.             s_key[#s_key+1] = string.byte(character)
  37.         end
  38.     end
  39.  
  40.     for i=1, #encry do
  41.         encry[i] = encry[i] + s_key[cnt]
  42.         if cnt == #s_key then
  43.             cnt = 1
  44.         else
  45.             cnt = cnt + 1
  46.         end
  47.     end
  48.  
  49.     print("Done!")
  50.     if save ~= "" then
  51.     if fs.exists(save) then fs.delete(save) end
  52.     local file = fs.open(save, "w")
  53.     for i=1, #encry do
  54.         file.write(encry[i])
  55.     end
  56.     file.close()
  57.     end
  58.  
  59.     for i=1, #encry do
  60.         write(string.char(encry[i]))
  61.     end
  62. end
  63.  
  64. function decrypt()
  65.     write("File /")
  66.     save = read()
  67.     if not fs.exists(save) then clr() cp(1,1) print("Invalid") return end
  68.     write("Key: ")
  69.     key = read()
  70.     print("Decrypting...")
  71.     local file = fs.open(save, "r")
  72.     strn = file.readLine()
  73.     file.close()
  74.     strn = tostring(strn)
  75.     local fin = false
  76.     local b_strn = string.len(strn)
  77.     local r_strn = {}
  78.     local s_key = {}
  79.     local cnt = 1
  80.  
  81.     for character in key:gmatch(".") do
  82.         if #s_key < 1 then
  83.             s_key[1] = string.byte(character)
  84.         else
  85.             s_key[#s_key+1] = string.byte(character)
  86.         end
  87.     end
  88.  
  89.     local decode = {}
  90.  
  91.     for character in strn:gmatch(".") do
  92.         if character == "." then
  93.             if #decode < 1 then
  94.                 for i=1, #r_strn do
  95.                     if decode[1] == nil then
  96.                         decode[1] = r_strn[i]
  97.                     else
  98.                         decode[1] = decode[1]..r_strn[i]
  99.                     end
  100.                 end
  101.                 r_strn = {}
  102.             else
  103.                 for i=1, #r_strn do
  104.                     if decode[#decode+1] == nil then
  105.                         decode[#decode+1] = r_strn[i]
  106.                     else
  107.                         decode[#decode+1] = decode[#decode+1]..r_strn[i]
  108.                     end
  109.                 end
  110.                 r_strn = {}
  111.             end
  112.         else
  113.             if #r_strn < 1 then
  114.                 r_strn[1] = character
  115.             else
  116.                 r_strn[#r_strn+1] = character
  117.             end
  118.         end
  119.     end
  120.  
  121.     for i=1, #decode do
  122.         decode[i] = tonumber(decode[i])
  123.         decode[i] = decode[i] - s_key[cnt]
  124.         if cnt == #s_key then
  125.             cnt = 1
  126.         else
  127.             cnt = cnt + 1
  128.         end
  129.     end
  130.  
  131.     for i=1, #decode do
  132.         if i == 1 then
  133.             print(string.char(decode[i]))
  134.         else
  135.             print(string.char(decode[i]*-1))
  136.         end
  137.     end
  138.  
  139.     local file = fs.open(save, "w")
  140.     for i=1, #decode do
  141.         file.write(decode[i])
  142.     end
  143.     file.close()
  144.  
  145.     print("Done!")
  146.  
  147.  
  148. end
  149.  
  150. encrypt()
Advertisement
Add Comment
Please, Sign In to add comment