Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
392
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.74 KB | None | 0 0
  1. #! /usr/bin/env python
  2. #Author: 1R3N1CU5
  3. #Special Thanks to S3myon!
  4.  
  5. import sys, os, time
  6. from hashlib import sha512
  7. from manager import ArithmeticError
  8.  
  9.  
  10. class user_management():
  11.  
  12. def __init__(self, database={}, choice=""):
  13. self.database = database
  14. self.choice = choice
  15. self.title()
  16. self.initial_check()
  17.  
  18.  
  19.  
  20. def clear(self): # Clears Screen
  21. if os.name in ['nt', 'win32', 'dos']:
  22. os.system('cls')
  23. else:
  24. os.system('clear')
  25.  
  26.  
  27.  
  28. def title(self): # Title function prints welcome screen.
  29. self.clear()
  30. print("\t __________________________________________ |")
  31. print("\t | |")
  32. print("\t | |")
  33. print("\t | |")
  34. print("\t | |")
  35. print("\t | Copyright 2010 (c) by 1R3N1CU5 |")
  36. print("\t | |")
  37. print("\t | |")
  38. print("\t ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^")
  39. print("\n\n\n")
  40. time.sleep(3)
  41. self.clear()
  42.  
  43.  
  44.  
  45. def menu(self): # Prints Menu
  46. print ("\n")
  47. print ("-")*50
  48. print ("Please Select:\n")
  49. print ("-")*50
  50. print ("1") ("[Register New User]")
  51. print ("2") ("[View Registered Accounts]")
  52. print ("3") ("[Login]")
  53. print ("4") ("[Exit]")
  54. print ("=")*50,("\n\n")
  55.  
  56.  
  57.  
  58. def select(self): # Main Function of the class. User Selects Option.
  59. while True:
  60. self.menu()
  61. try:
  62. self.choice = raw_input ('You Entered: ').strip()
  63. except (KeyboardInterrupt, IOError):
  64. print ("\nAborted! Exiting..")
  65. time.sleep(2)
  66. break
  67. if (self.choice in '1234'):
  68. if (self.choice == '1'):
  69. self.clear()
  70. self.register()
  71. elif (self.choice == '2'):
  72. self.clear()
  73. self.data_check()
  74. self.clear()
  75. elif (self.choice == '3'):
  76. self.clear()
  77. self.error_chk()
  78. self.clear()
  79. elif (self.choice == '4'):
  80. self.roll_credits()
  81. break
  82. elif (self.choice == ''):
  83. self.clear()
  84. print ("[Invalid Input! Try Again..]\n")
  85. else:
  86. self.clear()
  87. print ("[Invalid Input! Try Again..]\n")
  88.  
  89.  
  90.  
  91. def register(self): # Registers New User
  92. try:
  93. while True:
  94. print ("^")*50
  95. print ("Welcome To User Registration!")
  96. print ("*")*50
  97. print ("\n\n")
  98. set_user = (raw_input ('Please Enter User Name: ')).strip()
  99. if (self.database.has_key(set_user) == True):
  100. print ("\n\n")
  101. print ("^")*50
  102. print ("\n\t\t[User Already Registered]\n")
  103. print ("=")*50
  104. time.sleep(2)
  105. self.clear()
  106. continue
  107. elif (set_user == ""):
  108. print ("\n\n")
  109. print ("^")*50
  110. print ("\n\t\t[Invalid Username]\n")
  111. print ("=")*50
  112. time.sleep(1)
  113. self.clear()
  114. continue
  115. else:
  116. set_pw = (raw_input ('\nPlease Enter Password %s: ' % (set_user))).strip()
  117. if (set_pw == ""):
  118. print ("\n\n")
  119. print ("^")*50
  120. print ("\n\t\t[Invalid Password]\n")
  121. print ("=")*50
  122. time.sleep(1)
  123. self.clear()
  124. continue
  125. self.data_entry(set_user, set_pw)
  126. self.clear()
  127. print ("\n")
  128. print ("*")*50
  129. print ("New User Successfully Registered!")
  130. print ("^")*50
  131. break
  132. except (KeyboardInterrupt):
  133. self.clear()
  134. print("^")*50
  135. print ("[Returning to Main Menu]")
  136. print ("*")*50
  137. print ("\n\n")
  138. time.sleep(2)
  139. self.clear()
  140.  
  141.  
  142. def pass_encryption(self, pw): # Encrypts User Password using SHA512
  143. p = sha512()
  144. p.update(pw)
  145. secure_pass = p.hexdigest()
  146. return secure_pass
  147.  
  148.  
  149.  
  150. def data_entry(self, set_user, set_pw): # Stores User Data
  151. user = set_user
  152. pw = set_pw
  153. sec_pass = self.pass_encryption(pw)
  154. f = open ("user_data.txt"), ("a+")
  155. j = ("%s=%s\n") % (user, sec_pass)
  156. f.write(j)
  157. f.close()
  158. temp_data = {user:sec_pass}
  159. self.database.update(temp_data)
  160. temp_data.clear()
  161. return self.database
  162.  
  163.  
  164.  
  165. def initial_check(self): # Initially Checks Local data for Registered Users.
  166. self.clear()
  167. print ("\n\n")
  168. print ("^")*50
  169. print ("\t[Checking Local Data..]\n")
  170. print ("=")*50
  171. time.sleep(2)
  172. db = {}
  173. a = open('user_data.txt', 'a+')
  174. c = [i.strip() for i in a.readlines()]
  175. for i in c:
  176. j = i.split('=')
  177. db[j[0]] = j[1]
  178. self.database.update(db)
  179. db.clear()
  180. self.clear()
  181. return self.database
  182.  
  183.  
  184.  
  185. def data_check(self): # Allows Users to View Registered Users.
  186. print ("^")*50
  187. print ("Welcome to Account Management!")
  188. print ("*")*50, ("\n")
  189. print ("Total %d Account(s) Registered") % len(self.database)
  190. print ("_")*50, ("\n\n")
  191. print ("[Checking Account Details..]\n")
  192. count = 0
  193. time.sleep(2)
  194. self.clear()
  195. if (len(self.database)>0):
  196. temp_list = self.database.keys()
  197. print ("[Registered Users]")
  198. print ("-")*50
  199. for junk_val in temp_list[:]:
  200. count +=1
  201. print ("%d. %s") % (count, junk_val)
  202. junk_val2 = raw_input("\n\n\t\t<Print Any Key To Continue>")
  203. else:
  204. print ("[No User Registered]\n")
  205. print ("\n\n[Returning to Main Menu]\n")
  206. print ("=")*50
  207. time.sleep(2)
  208.  
  209.  
  210.  
  211. def error_chk(self): # Checks whether User is Authorised.
  212. try:
  213. name = raw_input('Enter Username: ').strip()
  214. password = raw_input('\nEnter Password: ').strip()
  215.  
  216. while True:
  217. if (name in self.database.keys()):
  218. print ("\n\n[Username Valid! Checking Password for %s..]") % (name)
  219. time.sleep(2)
  220. if (self.database[name] == self.pass_encryption(password)):
  221. print ("^")*50
  222. print ("[+] Access Granted!")
  223. print ("*")*50
  224. time.sleep(1)
  225. self.login()
  226. break
  227. else:
  228. print ("\n\n[Password Incorrect]\n")
  229. print ("[Returning to Main Menu]")
  230. time.sleep(2)
  231. self.clear()
  232. break
  233. else:
  234. print ("\n\n[-] Acess Denied!\n")
  235. time.sleep(1)
  236. self.clear()
  237. break
  238. except (KeyboardInterrupt):
  239. self.clear()
  240. print ("^")*50
  241. print ("[Returning to Main Menu]")
  242. print ("*")*50
  243. print ("\n\n")
  244. time.sleep(2)
  245. self.clear()
  246.  
  247.  
  248.  
  249. def login(self): # Login Function can be later integrated to allow users access to your program
  250. print ("\n[Feature not implemented yet!]\n\n")
  251. print ("[Returning to Main Menu]")
  252. time.sleep(3)
  253.  
  254.  
  255.  
  256. def roll_credits(self):
  257. self.clear()
  258. print ("\n\t"), ("^")*50, ("\n\tQuitting..."), ("\n\t"), '-'*50
  259. print ("\n\tGot Suggestions? Bugs? Email me at : ")
  260. print ("\n\tirenicus_timberlake@yahoo.com \n")
  261. print ("\t"),("*")*50
  262. time.sleep(3)
  263.  
  264.  
  265.  
  266. if __name__ == ("__main__"):
  267. global mng
  268. mng = user_management()
  269. mng.select()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement