· 10 years ago · Mar 18, 2016, 09:45 PM
1import sqlite3
2from hashlib import md5
3
4class Login():
5
6 def __init__(self, database = "logins.db"):
7 self.db = sqlite3.connect(database)
8 self.sql = self.db.cursor()
9
10 self.sql.execute("CREATE TABLE IF NOT EXISTS logins (username TEXT, password TEXT);")
11
12 def new_user(self, username, password):
13 self.sql.execute("INSERT INTO logins (username, password) VALUES (?, ?);",
14 (username, md5(password.encode()).hexdigest()))
15 self.db.commit()
16
17 def check(self, username, password):
18 self.sql.execute("SELECT * FROM logins WHERE username = ? AND password = ?",
19 (username, md5(password.encode()).hexdigest()))
20 data = self.sql.fetchall()
21 if len(data) < 1:
22 return False
23 elif len(data) == 1:
24 return True
25 else:
26 print("Duplicate login entry in database, please remove the duplicate user")
27
28db = Login()
29
30
31
32def login():
33 username = input("Username: ")
34 password = input("Password: ")
35
36 if not db.check(username, password):
37 return False
38 else:
39 return username
40
41def createnew():
42 username = input("New Username: ")
43 while True:
44 password = input("New Password: ")
45 retype = input("Retype Password: ")
46 if password == retype:
47 break
48 print("Passwords did not match!")
49 db.new_user(username, password)
50
51
52
53print('''
54------------------------------
551) Login
562) Create New User
57------------------------------
58''')
59while True:
60 option = input(">> ")
61 if option == "1" or option.lower == "login":
62 user = login()
63 if user:
64 print("Welcome", user)
65 else:
66 print("Invalid username/password!")
67 continue
68 break
69 elif option == "2" or option.lower == "create new user":
70 createnew()
71 else:
72 print("Please enter one of the above options")
73 continue