Guest User

passgen

a guest
Feb 23rd, 2013
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.48 KB | None | 0 0
  1. function clear()
  2.   term.clear()
  3.   term.setCursorPos(1,1)
  4. end
  5. function center(text,y,mode)
  6.   w,h = term.getSize()
  7.   term.setCursorPos((w/2)-(#text/2),y)
  8.   if mode == nil then mode = "print" end
  9.   if mode == "write" then
  10.     write(text)
  11.   else
  12.     print(text)
  13.   end
  14. end
  15. clear()
  16. write "Length: "
  17. local length = read()
  18. if tonumber(length) == false then
  19.   print("Use a number please")
  20.   sleep(2)
  21.   error()
  22. else
  23.   length = tonumber(length)
  24. end
  25. if length > 51 then
  26.     print("Please enter a length 50 characters or below")
  27.     sleep(2)
  28.     error()
  29. end
  30. lower = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}
  31. upper = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}
  32. special = {'!','@','#','$','%','^','&','*'}
  33. numbers = {'0','1','2','3','4','5','6','7','8','9'}
  34. mode = {"usnl","usln","ulsn","unsl","unls","ulns","nusl", "nsul", "sunl", "snul","lsnu","lsun","luns","lusn","lnsu","lnus" ,"nu", "un", "sn", "ns", "us", "su", "u", "s", "n"}
  35. clear()
  36. center("Modes: Upper[u], special[s], number[n], lower[l]",2)
  37. print()
  38. print()
  39. write "write all modes you want (no commas): "
  40. local l = false
  41. local u = false
  42. local s = false
  43. local n = false
  44. mds = ""
  45. while true do
  46.   event, key = os.pullEvent("key")
  47.   if key == 22 then
  48.     if u == false then
  49.       u = true
  50.       term.setCursorPos(1,7)
  51.       print"Upper"
  52.       mds = mds.."u"
  53.     else
  54.       u = false
  55.       term.setCursorPos(1,7)
  56.       term.clearLine()
  57.       mds = mds:gsub( "u", "" )
  58.     end
  59.   elseif key == 31 then
  60.     if s == false then
  61.       s = true
  62.       term.setCursorPos(1,8)
  63.       print"Special"
  64.       mds = mds.."s"
  65.     else
  66.       s = false
  67.       term.setCursorPos(1,8)
  68.       term.clearLine()
  69.       mds = mds:gsub("s","")
  70.     end
  71.   elseif key == 49 then
  72.     if n == false then
  73.       n = true
  74.       term.setCursorPos(1,9)
  75.       print"Number"
  76.       mds = mds.."n"
  77.     else
  78.       n = false
  79.       term.setCursorPos(1,9)
  80.       term.clearLine()
  81.       mds = mds:gsub("n", "")
  82.     end
  83.   elseif key == 38 then
  84.     if l == false then
  85.       l = true
  86.       term.setCursorPos(1,10)
  87.       print"Lower"
  88.       mds = mds.."l"
  89.     else
  90.       l = false
  91.       term.setCursorPos(1,10)
  92.       term.clearLine()
  93.       mds = mds:gsub("l", "")
  94.     end
  95.   elseif key == 28 and (l or n or s or u) then
  96.     break
  97.   end
  98. end
  99. mds = string.lower(mds)
  100. local test = false
  101. for i=1, #mode do
  102.   if mds == mode[i] then
  103.     test = true
  104.     break
  105.   end
  106. end
  107. if test == false then
  108.   print("Invalid mode: "..mds)
  109. end
  110. modes = {}
  111. message = ""
  112. if l == true and n == true and s == true and u == true then
  113.   for i=1, length do
  114.     num = math.random(4)
  115.     if num == 1 then
  116.       message = message..lower[math.random(#lower)]
  117.     elseif num == 2 then
  118.       message = message..upper[math.random(#upper)]
  119.     elseif num == 3 then
  120.       message = message..special[math.random(#special)]
  121.     elseif num == 4 then
  122.       message = message..numbers[math.random(#numbers)]
  123.     end
  124.   end
  125. elseif n == true and s == true and u == true then
  126.   for i=1, length do
  127.     num = math.random(3)
  128.     if num == 1 then
  129.       message = message..upper[math.random(#upper)]
  130.     elseif num == 2 then
  131.       message = message..special[math.random(#special)]
  132.     elseif num == 3 then
  133.       message = message..numbers[math.random(#numbers)]
  134.     end
  135.   end
  136. elseif n == true and s == true and l == true then
  137.   for i=1, length do
  138.     num = math.random(3)
  139.     if num == 1 then
  140.       message = message..special[math.random(#special)]
  141.     elseif num == 2 then
  142.       message = message..numbers[math.random(#numbers)]
  143.     elseif num == 3 then
  144.       message = message..lower[math.random(#lower)]
  145.     end
  146.   end
  147. else if n == true and s == true then
  148.   for i=1, length do
  149.     num = math.random(2)
  150.     if num == 1 then
  151.       message = message..numbers[math.random(#numbers)]
  152.     elseif num == 2 then
  153.       message = message..special[math.random(#special)]
  154.     end
  155.   end
  156. elseif l == true and u == true and s == true then
  157.   for i=1, length do
  158.     num = math.random(3)
  159.     if num == 1 then
  160.       message = message..upper[math.random(#upper)]
  161.     elseif num == 2 then
  162.       message = message..lower[math.random(#lower)]
  163.     elseif num == 3 then
  164.       message = message..special[math.random(#special)]
  165.     end
  166.   end
  167. elseif s == true and u == true then
  168.   for i=1, length do
  169.     num = math.random(2)
  170.     if num == 1 then
  171.       message = message..special[math.random(#special)]
  172.     else
  173.       message = message..upper[math.random(#upper)]
  174.     end
  175.   end
  176. elseif l == true and n == true and u == true then
  177.   for i=1, length do
  178.     num = math.random(3)
  179.     if num == 1 then
  180.       message = message..upper[math.random(#upper)]
  181.     elseif num == 2 then
  182.       message = message..numbers[math.random(#numbers)]
  183.     elseif num == 3 then
  184.       message = message..lower[math.random(#lower)]
  185.     end
  186.   end
  187. elseif u == true and n == true then
  188.   for i=1, length do
  189.     num = math.random()
  190.     if num == 1 then
  191.       message = message..upper[math.random(#upper)]
  192.     else
  193.       message = message..numbers[math.random(#numbers)]
  194.     end
  195.   end
  196. elseif l == true and n == true then
  197.   for i=1, length do
  198.     num = math.random(2)
  199.     if num == 1 then
  200.       message = message..numbers[math.random(#numbers)]
  201.     elseif num == 2 then
  202.       message = message..lower[math.random(#lower)]
  203.     end
  204.   end
  205. elseif l == true and s == true then
  206.   for i=1, length do
  207.     num = math.random(2)
  208.     if num == 1 then
  209.       message = message..special[math.random(#special)]
  210.     elseif num == 2 then
  211.       message = message..lower[math.random(#lower)]
  212.     end
  213.   end
  214. elseif l == true and u == true then
  215.   for i=1, length do
  216.     num = math.random(2)
  217.     if num == 1 then
  218.       message = message..upper[math.random(#upper)]
  219.     elseif num == 2 then
  220.       message = message..lower[math.random(#lower)]
  221.     end
  222.   end
  223. elseif l == true then
  224.   for i=1, length do
  225.     message = message..lower[math.random(#lower)]
  226.   end
  227. elseif n == true then
  228.   for i=1, length do
  229.     message = message..numbers[math.random(#numbers)]
  230.   end
  231. elseif s == true then
  232.   for i=1, length do
  233.     message = message..special[math.random(#special)]
  234.   end
  235. elseif u == true then
  236.   for i=1, length do
  237.     message = message..upper[math.random(#upper)]
  238.   end
  239. end
  240. end
  241. clear()
  242. center("Your Password is: ", 4)
  243. center(message,6)
  244. center("Your password has been stored in the file: Pass", h-3)
  245. file = io.open("pass","w")
  246. file:write(message)
  247. file:close()
Advertisement
Add Comment
Please, Sign In to add comment