Advertisement
happydude11209

EditUsers

Jun 12th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.95 KB | None | 0 0
  1. os.loadAPI("hash")
  2. local passwordTable = {}
  3.  
  4. if (fs.exists("loginPasswords.secure.txt")) then
  5.     local passwordFile = fs.open("loginPasswords.secure.txt", "r")
  6.     passwordTable = textutils.unserialize(passwordFile.readAll()) or {}
  7.     passwordFile.close()
  8. end
  9.  
  10. while true do
  11.     term.clear()
  12.     term.setCursorPos(1, 1)
  13.     print("Username to create or edit:")
  14.     local userName = ""
  15.     while true do
  16.         event, return1 = os.pullEvent()
  17.         if (event == "char") then
  18.             userName = userName .. return1
  19.             write(return1)
  20.         elseif (event == "key") then
  21.             if (return1 == 28) then
  22.                 write("\n")
  23.                 break
  24.             elseif (return1 == 14) then
  25.                 termX, termY = term.getCursorPos()
  26.                 if (termX > 0) then
  27.                     term.setCursorPos(termX - 1, termY)
  28.                 else
  29.                     term.setCursorPos(termX, termY)
  30.                 end
  31.                 write(" ")
  32.                 if (termX > 0) then
  33.                     term.setCursorPos(termX - 1, termY)
  34.                 else
  35.                     term.setCursorPos(termX, termY)
  36.                 end
  37.                 userName = string.sub(userName, 1, string.len(userName) - 1)
  38.             end
  39.         end
  40.     end
  41.  
  42.     print("New password:")
  43.     local newPassword1 = ""
  44.     while true do
  45.         event, return1 = os.pullEvent()
  46.         if (event == "char") then
  47.             write("*")
  48.             newPassword1 = newPassword1 .. return1
  49.         elseif (event == "key") then
  50.             if (return1 == 28) then
  51.                 write("\n")
  52.                 break
  53.             elseif (return1 == 14) then
  54.                 termX, termY = term.getCursorPos()
  55.                 if (termX > 0) then
  56.                     term.setCursorPos(termX - 1, termY)
  57.                 else
  58.                     term.setCursorPos(termX, termY)
  59.                 end
  60.                 write(" ")
  61.                 if (termX > 0) then
  62.                     term.setCursorPos(termX - 1, termY)
  63.                 else
  64.                     term.setCursorPos(termX, termY)
  65.                 end
  66.                 newPassword1 = string.sub(newPassword1, 1, string.len(newPassword1) - 1)
  67.             end
  68.         end
  69.     end
  70.  
  71.     print("Confirm:")
  72.     local newPassword2 = ""
  73.     while true do
  74.         event, return1 = os.pullEvent()
  75.         if (event == "char") then
  76.             write("*")
  77.             newPassword2 = newPassword2 .. return1
  78.         elseif (event == "key") then
  79.             if (return1 == 28) then
  80.                 write("\n")
  81.                 break
  82.             elseif (return1 == 14) then
  83.                 termX, termY = term.getCursorPos()
  84.                 if (termX > 0) then
  85.                     term.setCursorPos(termX - 1, termY)
  86.                 else
  87.                     term.setCursorPos(termX, termY)
  88.                 end
  89.                 write(" ")
  90.                 if (termX > 0) then
  91.                     term.setCursorPos(termX - 1, termY)
  92.                 else
  93.                     term.setCursorPos(termX, termY)
  94.                 end
  95.                 newPassword2 = string.sub(newPassword2, 1, string.len(newPassword2) - 1)
  96.             end
  97.         end
  98.     end
  99.  
  100.     if (newPassword1 == newPassword2) then
  101.         -- passwordHash = hash.hash(newPassword1)
  102.         passwordHash = hash.sha256(newPassword1)
  103.         passwordTable[userName] = passwordHash
  104.     else
  105.         shell.run(shell.getRunningProgram())
  106.         return
  107.     end
  108.    
  109.     print("Do you want to do more?")
  110.     userYesNo = io.read()
  111.     if (userYesNo == "yes" or userYesNo == "Yes") then
  112.         -- do nothing :P
  113.     else
  114.         break
  115.     end
  116. end
  117.  
  118. local passwordFile2 = fs.open("loginPasswords.secure.txt", "w")
  119. passwordFile2.write(textutils.serialize(passwordTable))
  120. passwordFile2.close()
  121.  
  122. os.unloadAPI("hash")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement