Advertisement
Redxone

Secure Account Lock [sha256] Revised

Jul 8th, 2015
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 30.41 KB | None | 0 0
  1. --]] Ease Functions [[--
  2.  os.pullEvent = os.pullEventRaw
  3.  
  4. os.loadAPI("sha256")
  5.  
  6. function loader()
  7.   bg(colors.green)
  8.   cl()
  9.   printxyc(15,2,colors.white,"Loading Main Screen...")
  10.   local py = 25
  11.  
  12.   for i=0,5 do
  13.  
  14.     printxyc(py,15,colors.white, ":")
  15.     sleep(0.1)
  16.     printxyc(py,15,colors.white,"/")
  17.     sleep(0.1)
  18.     printxyc(py,15,colors.white,"-")
  19.     sleep(0.1)
  20.    
  21.   end
  22.  
  23. end
  24.  
  25.  
  26.  
  27. local w,h = term.getSize()
  28. cont=false
  29. wsign=false;
  30. rs_side = 'right'
  31.  
  32. function cl() term.clear() end
  33. function bg(color) term.setBackgroundColor(color) end
  34. function tc(color) term.setTextColor(color) end
  35. --function cprint_y(y,t) opx = ((w/2) - #t) - 2; setPos(opx,y); print(t) end
  36. function setPos(x,y) term.setCursorPos(x,y) end
  37. function printxyc(x,y,c,t) setPos(x,y); tc(c); print(t) end
  38.  
  39. --]] Keycard Signin System By Redxone [[--
  40.  
  41. function getKey()
  42.  
  43.   if(fs.exists(".key"))then
  44.     k = fs.open(".key", "r")
  45.     adkey = k.readLine()
  46.     k.close()
  47.   else
  48.  
  49.     local rndk = math.random(1,1000000)
  50.  
  51.     k = fs.open(".key", "w")
  52.     k.writeLine(rndk)
  53.     k.close()
  54.     getKey()
  55.    
  56.   end
  57.  
  58. end
  59. getKey()
  60.  
  61. local aal = ".admin/.login/."..adkey
  62.  
  63. function admin_pass()
  64.  
  65.                 bg(colors.gray)
  66.                 setPos(16,10)
  67.                 print(string.rep(" ", 19) )
  68.                 printxyc(16,10,colors.red,"Enter Admin Password")
  69.                 setPos(16,11)
  70.                 print(" ")
  71.                 bg(colors.gray)
  72.                 setPos(35,11)
  73.                 print(" ")
  74.                 setPos(16,12)
  75.                 print(string.rep(" ", 20) )
  76.                 setPos(17,11)
  77.                 bg(colors.white)
  78.                 tc(colors.black)
  79.                 print(string.rep(" ", 18))
  80.                
  81.                
  82.                 f = fs.open(aal,"r")
  83.                 cpass = f.readLine()
  84.                 f.close()
  85.                
  86.                 setPos(17,11)
  87.                 upass = read('*')
  88.                 upass = sha256.sha256(upass)
  89.                 bg(colors.gray)
  90.                
  91.                 if(cpass == upass)then
  92.                
  93.                         printxyc(17,12,colors.green,"CORRECT")
  94.                         sleep(0.5)
  95.                
  96.                         return true
  97.                        
  98.                 end
  99.                
  100.                
  101.                 if(cpass ~= upass)then
  102.                
  103.                         printxyc(17,12,colors.red,"DENIED")
  104.                         sleep(0.5)
  105.                
  106.                         return false
  107.                        
  108.                 end
  109.                
  110.                
  111. end
  112.  
  113.  
  114. function lockpass()
  115.  
  116.                 bg(colors.gray)
  117.                 setPos(11,10)
  118.                 print(string.rep(" ", 34) )
  119.                 printxyc(11,10,colors.red,"LOCKED DOWN - Enter Admin Password!")
  120.                 setPos(11,11)
  121.                 print(" ")
  122.                 bg(colors.gray)
  123.                 setPos(45,11)
  124.                 print(" ")
  125.                 setPos(11,12)
  126.                 print(string.rep(" ", 35) )
  127.                 setPos(12,11)
  128.                 bg(colors.white)
  129.                 tc(colors.black)
  130.                 print(string.rep(" ", 33))
  131.                
  132.                
  133.                 f = fs.open(aal,"r")
  134.                 cpass = f.readLine()
  135.                 f.close()
  136.                
  137.                 setPos(12,11)
  138.                 upass = read('*')
  139.                upass = sha256.sha256(upass)
  140.                 bg(colors.gray)
  141.                 locked=true
  142.                
  143.                 while locked do
  144.                        
  145.                         if(cpass == upass)then
  146.                        
  147.                                 printxyc(17,12,colors.green,"CORRECT")
  148.                                 sleep(0.5)
  149.                                
  150.                                 locked=false
  151.                                 drawm()
  152.                                 break
  153.                                
  154.                         end
  155.                        
  156.                        
  157.                         if(cpass ~= upass)then
  158.                        
  159.                                 printxyc(17,12,colors.red,"DENIED")
  160.                                 sleep(0.5)
  161.                        
  162.                                 lockpass()
  163.                        
  164.                         end
  165.                        
  166.                 end
  167.                
  168.                
  169. end
  170.  
  171. --]] Login GUI And Input Taker [--
  172. function print_login(type)
  173.  
  174.  
  175.   --]] Admin Login [[--
  176.  
  177.       if(type == "c")then --]] >> Create <<
  178.      
  179.           bg(colors.green)
  180.           tc(colors.white)
  181.           cl()
  182.           printxyc(5,2,colors.white,"No Admin Account Detected Please Create One.")
  183.           printxyc(1,5,colors.red,"Username: Administrator")
  184.           printxyc(1,7,colors.white,"Password: ")
  185.           bg(colors.gray)
  186.           printxyc(10,7,colors.white,string.rep(" ", 15))
  187.           bg(colors.red)
  188.           printxyc(20,13,colors.black,"[== CONFIRM ==]")
  189.          
  190.           bg(colors.gray)
  191.           setPos(10,7)
  192.           passinput = read("*")
  193.           passinput = sha256.sha256(passinput)
  194.           cont=true
  195.          
  196.          while cont do
  197.          
  198.           local event ,mb ,mx, my = os.pullEvent("mouse_click")
  199.            
  200.            --printxyc(1,1,colors.black,"X: "..mx.." Y: "..my.." B: "..mb)
  201.            
  202.           if(mx >= 20 and mx <= 34 and my == 13 and mb == 1)then
  203.          
  204.              --]] Continues Rest Of Code [[--
  205.              cont=false
  206.              break
  207.          
  208.           end
  209.          
  210.          end
  211.         end
  212.          
  213.      
  214.      
  215.       if(type == "l")then --]] >> Login  <<
  216.      
  217.                        
  218.                         local mo = {}
  219.                        
  220.                          mo[1] = "[Unlock Entrance]"
  221.                          mo[2] = "[Create  Account]"
  222.                          mo[3] = "[Delete  Account]"
  223.                          mo[4] = "[Lock  Interface]"
  224.                          
  225.                         local restricted = { [1] = false, [2] = true, [3] = true, [4] = true}
  226.                        
  227.                        
  228.                         local so = 1
  229.                         local mxo = 4
  230.                         menu=true;
  231.                        
  232.                         function drawm()
  233.                        
  234.                                 bg(colors.green)
  235.                                 tc(colors.white)
  236.                                 cl()
  237.                  
  238.                                 printxyc(4,2,colors.white,"Admin Account Detected Please Select An Option \n Some Options May Require Administrator Password.")
  239.                        
  240.                                 for i=1,mxo do
  241.                                        
  242.                                         if(so == i)then
  243.                                                
  244.                                                 setPos(15,7+i)
  245.                                                 print(">")
  246.                                                 setPos(18,7+i)
  247.                                                 bg(colors.blue)
  248.                                                 print(mo[i])
  249.                                                
  250.                                         else
  251.                                        
  252.                                                 bg(colors.green)
  253.                                                 setPos(15,7+i)
  254.                                                 print(" ")
  255.                                                 setPos(18,7+i)
  256.                                                 print(mo[i])
  257.                                                
  258.                                         end
  259.                                        
  260.                                 end
  261.                         end
  262.                         drawm()
  263.                        
  264.                        
  265.                         function handledest()
  266.                                        
  267.                                         if(so == 1)then
  268.                                                
  269.                                                   bg(colors.green)
  270.                                                   tc(colors.white)
  271.                                                   cl()
  272.                                                  
  273.                                                   xtl = 12
  274.                                                  
  275.                                                   printxyc(13,2,colors.white,"============================")
  276.                                                   printxyc(13,3,colors.white,"Please Login To User Profile")
  277.                                                   printxyc(13,4,colors.white,"============================")
  278.                                                   printxyc(1+xtl,8,colors.white,"Username: ")
  279.                                                   bg(colors.gray)
  280.                                                   printxyc(10+xtl,8,colors.white,string.rep(" ", 15))
  281.                                                   bg(colors.green)
  282.                                                   printxyc(1+xtl,10,colors.white,"Password: ")
  283.                                                   bg(colors.gray)
  284.                                                   printxyc(10+xtl,10,colors.white,string.rep(" ", 15))
  285.                                                   bg(colors.blue)
  286.                                                   printxyc(20,13,colors.black,"[== SIGN IN ==]")
  287.                                                  
  288.                                                   tc(colors.white)
  289.                                                   bg(colors.gray)
  290.                                                  
  291.                                                   setPos(10+xtl,8)
  292.                                                   iuser = read()
  293.                                                   setPos(10+xtl,10)
  294.                                                   ipass = read('*')
  295.                                                   ipass = sha256.sha256(ipass)
  296.                                                   wsign=true
  297.                                                  
  298.                                                  
  299.                                                  
  300.                                                   while wsign do
  301.                                                        
  302.                                                                 local ev, button, mx, my = os.pullEvent("mouse_click")
  303.                                                                
  304.                                                                 if(mx >= 20 and mx <= 34 and my == 13 and button == 1)then
  305.                                                                        
  306.                                                                         --]] Check Login [[--
  307.                                                                        
  308.                                                                         logpath = ".logins/.users/"
  309.                                                                        
  310.                                                                         if(fs.exists(logpath..iuser) and not fs.isDir(iuser) and iuser ~= " ")then
  311.                                                                        
  312.                                                                                 f = fs.open(logpath..iuser,"r")
  313.                                                                                 cpass = f.readLine()
  314.                                                                                 f.close()
  315.                                                                                
  316.                                                                                 if(ipass == cpass)then
  317.                                                                                        
  318.                                                                                         setPos(20,14)
  319.                                                                                         bg(colors.green)
  320.                                                                                         tc(colors.blue)
  321.                                                                                         textutils.slowPrint("Access Granted.")
  322.                                                                                        
  323.                                                                                         rs.setOutput(rs_side, true)
  324.                                                                                         sleep(1.5)
  325.                                                                                         rs.setOutput(rs_side, false)
  326.                                                                                         wsign=false
  327.                                                                                         drawm()
  328.                                                                                         break
  329.                                                                                        
  330.                                                                                 else
  331.                                                                                                                                                                                
  332.                                                                                         setPos(20,14)
  333.                                                                                         bg(colors.green)
  334.                                                                                         tc(colors.red)
  335.                                                                                         textutils.slowPrint("Access Denied.")
  336.                                                                                         sleep(0.5)
  337.                                                                                         wsign=false;
  338.                                                                                         drawm()
  339.                                                                                         break
  340.                                                                                        
  341.                                                                                 end
  342.                                                                        
  343.                                                                         else
  344.                                                                                 setPos(20,14)
  345.                                                                                 bg(colors.green)
  346.                                                                                 tc(colors.red)
  347.                                                                                 textutils.slowPrint("Access Denied.")
  348.                                                                                 sleep(0.5)
  349.                                                                                 wsign=false;
  350.                                                                                 drawm()
  351.                                                                                 break
  352.                                                                         end
  353.                                                                        
  354.                                                                        
  355.                                                                        
  356.                                                                 end
  357.                                                                
  358.                                                   end
  359.                                                  
  360.                                         end
  361.                                        
  362.                                        
  363.                                         if(so == 2)then
  364.                                                
  365.                                                   bg(colors.green)
  366.                                                   tc(colors.white)
  367.                                                   cl()
  368.                                                  
  369.                                                   xtl = 12
  370.                                                  
  371.                                                   printxyc(13,2,colors.white,"============================")
  372.                                                   printxyc(13,3,colors.white,"|    Create User Profile   |")
  373.                                                   printxyc(13,4,colors.white,"============================")
  374.                                                   printxyc(1+xtl,8,colors.white,"Username: ")
  375.                                                   bg(colors.gray)
  376.                                                   printxyc(10+xtl,8,colors.white,string.rep(" ", 15))
  377.                                                   bg(colors.green)
  378.                                                   printxyc(1+xtl,10,colors.white,"Password: ")
  379.                                                   bg(colors.gray)
  380.                                                   printxyc(10+xtl,10,colors.white,string.rep(" ", 15))
  381.                                                   bg(colors.blue)
  382.                                                   printxyc(20,13,colors.black,"[== CREATE ==]")
  383.                                                  
  384.                                                   bg(colors.red)
  385.                                                   printxyc(20,15,colors.black,"[== CANCEL ==]")
  386.                                                  
  387.                                                   tc(colors.white)
  388.                                                   bg(colors.gray)
  389.                                                  
  390.                                                   setPos(10+xtl,8)
  391.                                                   iuser = read()
  392.                                                   setPos(10+xtl,10)
  393.                                                   ipass = read("*")
  394.                                                   ipass = sha256.sha256(ipass)
  395.                                                   wsign=true
  396.                                                  
  397.                                                  
  398.                                                  
  399.                                                   while wsign do
  400.                                                        
  401.                                                                 local ev, button, mx, my = os.pullEvent("mouse_click")
  402.                                                                
  403.                                                                 if(mx >= 20 and mx <= 32 and my == 13 and button == 1)then
  404.                                                                        
  405.                                                                         --]] Check Login [[--
  406.                                                                        
  407.                                                                         logpath = ".logins/.users/"
  408.                                                                        
  409.                                                                         if(fs.exists(logpath..iuser))then
  410.                                                                        
  411.                                                                                 setPos(20,12)
  412.                                                                                 bg(colors.green)
  413.                                                                                 tc(colors.red)
  414.                                                                                 textutils.slowPrint("User Already Exists!")
  415.                                                                                 sleep(0.8)
  416.                                                                                 wsign=false;
  417.                                                                                 drawm()
  418.                                                                                 break
  419.                                                                        
  420.                                                                         else
  421.                                                                                        
  422.                                                                                 f = fs.open(logpath..iuser,"w")
  423.                                                                                 f.writeLine(ipass)
  424.                                                                                 f.close()
  425.                                                                                
  426.                                                                                 setPos(20,12)
  427.                                                                                 bg(colors.green)
  428.                                                                                 tc(colors.red)
  429.                                                                                 textutils.slowPrint("User Created Successfully!")
  430.                                                                                 sleep(0.8)
  431.                                                                                 wsign=false;
  432.                                                                                 drawm()
  433.                                                                                 break
  434.                                                                                        
  435.                                                                         end
  436.                                                                        
  437.                                                                 end
  438.                                                                
  439.                                                                
  440.                                                                 if(mx >= 20 and mx <= 32 and my == 15 and button == 1)then
  441.                                                                                 wsign=false;
  442.                                                                                 drawm()
  443.                                                                                 break
  444.                                                                 end
  445.                                                                
  446.                                                   end
  447.                                         end    
  448.                                        
  449.                                        
  450.                                         if(so == 3)then
  451.                                                
  452.                                                   bg(colors.green)
  453.                                                   tc(colors.white)
  454.                                                   cl()
  455.                                                  
  456.                                                   xtl = 12
  457.                                                  
  458.                                                   printxyc(13,2,colors.white,"============================")
  459.                                                   printxyc(13,3,colors.white,"|    Delete User Profile   |")
  460.                                                   printxyc(13,4,colors.white,"============================")
  461.                                                   printxyc(1+xtl,8,colors.white,"Username: ")
  462.                                                   bg(colors.gray)
  463.                                                   printxyc(10+xtl,8,colors.white,string.rep(" ", 15))
  464.                                                   bg(colors.blue)
  465.                                                   printxyc(20,13,colors.black,"[== DELETE ==]")
  466.                                                  
  467.                                                   bg(colors.red)
  468.                                                   printxyc(20,15,colors.black,"[== CANCEL ==]")
  469.                                                  
  470.                                                   tc(colors.white)
  471.                                                   bg(colors.gray)
  472.                                                  
  473.                                                   setPos(10+xtl,8)
  474.                                                   iuser = read()
  475.                                                   wsign=true
  476.                                                  
  477.                                                  
  478.                                                  
  479.                                                   while wsign do
  480.                                                        
  481.                                                                 local ev, button, mx, my = os.pullEvent("mouse_click")
  482.                                                                
  483.                                                                 if(mx >= 20 and mx <= 32 and my == 13 and button == 1)then
  484.                                                                        
  485.                                                                         --]] Check Login [[--
  486.                                                                        
  487.                                                                         logpath = ".logins/.users/"
  488.                                                                        
  489.                                                                         if(fs.exists(logpath..iuser))then
  490.                                                                        
  491.                                                                                 fs.delete(logpath..iuser)
  492.                                                                        
  493.                                                                                 setPos(20,12)
  494.                                                                                 bg(colors.green)
  495.                                                                                 tc(colors.green)
  496.                                                                                 textutils.slowPrint("User Deleted Successfully!")
  497.                                                                                 sleep(0.8)
  498.                                                                                 wsign=false;
  499.                                                                                 drawm()
  500.                                                                                 break
  501.                                                                        
  502.                                                                         else
  503.                                                                                
  504.                                                                                 setPos(20,12)
  505.                                                                                 bg(colors.green)
  506.                                                                                 tc(colors.red)
  507.                                                                                 textutils.slowPrint("User Doesn't Exists!")
  508.                                                                                 sleep(0.8)
  509.                                                                                 wsign=false;
  510.                                                                                 drawm()
  511.                                                                                 break
  512.                                                                                        
  513.                                                                         end
  514.                                                                        
  515.                                                                 end
  516.                                                                
  517.                                                                
  518.                                                                 if(mx >= 20 and mx <= 32 and my == 15 and button == 1)then
  519.                                                                                 wsign=false;
  520.                                                                                 drawm()
  521.                                                                                 break
  522.                                                                 end
  523.                                                                
  524.                                                   end
  525.                                         end    
  526.                                        
  527.                                         if(so == 4)then
  528.                                                 lockpass()
  529.                                         end
  530.                                        
  531.                         end
  532.                        
  533.                         while menu do
  534.                        
  535.  
  536.                        
  537.                         local ev, key = os.pullEvent("key")
  538.                        
  539.                         if(key == keys.down and so < mxo)then so = so + 1; drawm() end
  540.                         if(key == keys.up and so > 1)then so = so - 1; drawm() end
  541.                        
  542.                         if(key == keys.enter)then
  543.                                
  544.                                 if(restricted[so])then
  545.                                
  546.                                         if(admin_pass())then
  547.                                                 drawm()
  548.                                                 handledest()
  549.                                                
  550.                                         else
  551.                                                 drawm()
  552.                                         end
  553.                                        
  554.                                 else
  555.                                         handledest()
  556.                                 end
  557.                                
  558.                         end
  559.                         end
  560.                        
  561.       end
  562. end
  563.  
  564.  
  565. function continue()
  566. --]] Check Administrator Account Exists [[--
  567. if(fs.exists(aal))then
  568.  
  569.      print_login("l")
  570.  
  571. else
  572.  
  573.     --]] Create Account [[--
  574.    
  575.     print_login("c")
  576.    
  577.     f = fs.open(aal,"w")
  578.     f.writeLine(passinput)
  579.     f.close()
  580.     loader()
  581.     continue()
  582. end
  583. end
  584.  
  585. continue()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement