Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.pullEvent = os.pullEventRaw
- term.clear()
- term.setCursorPos(1,1)
- local lPassword = ""
- local run = true
- local passwordT = ""
- local textBoxH = 8
- local textbox = {}
- local message = "Password protection"
- textbox[1] = "/-----------------------\\"
- textbox[2] = "| |"
- textbox[3] = "\\-----------------------/"
- --local inputbox = {}
- --local inputbox[1] = "--------------"
- --local inputboc[2] = "|"
- local w,h = term.getSize()
- function draw()
- term.clear()
- local posX = (w/2)-(string.len(textbox[1])/2)
- local posY = (h/2)-(textBoxH/2)
- local posX2 = (w/2) - (string.len(textbox[1])/4)-1
- local posY2 = (h/2) + (textBoxH*0.2)
- for i=1, string.len(passwordT) do
- if i < string.len(textbox[1])/2 then
- term.setCursorPos(posX2+i,posY2)
- term.write("*")
- end
- end
- for i=1, string.len(textbox[1])/2 do
- --term.setCursorPos(posX2+i, posY2)
- --term.write("*")
- term.setCursorPos(posX2+i,posY2-1)
- term.write("-")
- term.setCursorPos(posX2+i,posY2+1)
- term.write("-")
- end
- term.setCursorPos(posX2,posY2)
- term.write("|")
- term.setCursorPos(1+posX2+string.len(textbox[1])/2,posY2)
- term.write("|")
- term.setCursorPos((w/2)-(string.len(message)/2),posY2-3)
- term.write(message)
- term.setCursorPos(posX,posY)
- term.write(textbox[1])
- for i=1,textBoxH do
- term.setCursorPos(posX,posY+i)
- term.write("|")
- term.setCursorPos(posX+string.len(textbox[1])-1,posY+i)
- term.write("|")
- end
- term.setCursorPos(posX,posY+textBoxH+1)
- term.write(textbox[3])
- --Draw the input box
- end
- function update()
- event,p1,p2,p3 = os.pullEvent()
- --draw()
- if event == "key" then
- if p1 == 14 then
- if string.len(passwordT) > 0 then
- passwordT = string.sub(passwordT,0,string.len(passwordT)-1)
- end
- end
- if p1 == 28 then
- if matchPasswords(cryptPassword(passwordT),lPassword) then
- message = "Access Granted!"
- draw()
- sleep(2)
- term.clear()
- term.setCursorPos(1,1)
- print("Zugang gewรคhrt")
- restone.setOutput("left",true)
- sleep(3)
- else
- message = "ACCESS DENIED!"
- passwordT = ""
- draw()
- sleep(3)
- message = "Password protection"
- end
- end
- end
- if event == "char" then
- passwordT = passwordT .. p1
- end
- if event == "terminate" then
- message = "ACCESS DENIED!"
- draw()
- sleep(5)
- passwordT = ""
- message = "Password protection"
- --draw()
- end
- if event == "disk" then
- message = "DISK NOT ALLOWED!"
- disk.eject("right")
- disk.eject("left")
- disk.eject("bottom")
- disk.eject("front")
- --disk.eject("back")
- disk.eject("top")
- sleep(5)
- message = "Password protection"
- end
- draw()
- end
- function loadPassword()
- local file = io.open("PF","r")
- if not(file == nil) then
- local password = file:read()
- file:close()
- return password
- else
- changePassword()
- os.reboot()
- --lPassword = loadPassword()
- end
- end
- function changePassword()
- term.clear()
- term.setCursorPos(1,1)
- nPass = "1"
- nPass3 = ""
- print("Type in new password:")
- local nPass = read("*")
- local nPass2 = cryptPassword(nPass)
- local file = io.open("PF","w")
- --print(nPass2)
- file:write(nPass2)
- file:close()
- end
- function matchPasswords(pass,pass2)
- if pass == pass2 then
- return true
- else
- return false
- end
- end
- function cryptPassword(pass)
- local chars = {}
- local crypted1 = ""
- local randomSeed = 0
- for i=1, string.len(pass) do
- chars[i] = string.byte(pass,i)
- end
- for i=1, #chars do
- randomSeed = randomSeed + chars[i]
- end
- math.randomseed(randomSeed)
- for i=1, #chars do
- crypted1 = crypted1 .. math.random(255)
- end
- return crypted1
- end
- lPassword = loadPassword()
- --print(lPassword)
- --sleep(10)
- draw()
- function upDate()
- while run do
- update()
- end
- end
- upDate()
- term.clear()
- term.setCursorPos(1,1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement