View difference between Paste ID: 6cw0VP30 and 0QcRPH6y
SHOW: | | - or go back to the newest paste.
1
from base64 import *
2
3
#=-=-=-=-=-=-=-=-=-=-=-=-#
4
#                        #
5
#      Login System      #
6
#                        #
7
#=-=-=-=-=-=-=-=-=-=-=-=-#
8
9
#Define the list of account to allow in:
10
def txt_to_dict():
11
	"""The purpose of this function is to take
12
	the information found in the account_info.txt
13
	file and save it to a dictionary proper."""
14
15
	user_info = open("account_info.txt", "r")
16
17
18
	raw_info = []
19
	account_info = {}
20
21
	#Store the information into an array
22
	for each in user_info:
23
		temp = each.rstrip('\n')
24
		raw_info.append(temp)
25
26
	user_info.close()
27
		
28
	#Take each chunk of text and seperate it proper
29
30
	for each in raw_info:
31
		count = 0
32
		if each[0] != " ":
33
			while each[count] != ";":
34
				count += 1dt
35
			if each[count] == ";":
36
				username = each[0:count]
37
				password = each[(count+1):len(each)]
38
39
				account_info[username] = password
40
41
	#return raw_info
42
	login(account_info)
43
44
def update_txt(account_list, username, password):
45
	user_info = open("account_info.txt", "a")
46
47
	user_info.write(username + ";" + password + "\n")
48
49
	user_info.close()
50
	create_txt(username)
51
52
53
def string_encode(string):
54
55
	#Take the user string and encode it once:
56
	stringEnc1 = ""
57
	stringEnc1 = b64encode(string)
58
59
	#Then encode it again:
60
	stringEnc2 = ""
61
	stringEnc2 = b64encode(stringEnc1)
62
	return stringEnc2
63
64
65
def string_decode(string):
66
67
68
	#Take the inputted string and decode it twice:
69
	stringDec1 = ""
70
	stringDec1 = b64decode(string)
71
	stringDec2 = ""
72
	stringDec2 = b64decode(stringDec1)
73
74
	return stringDec2
75
76
def login(account_list):
77
78-
	print account_list
78+
79
	information encrypt it using the string_encode
80
	function. Then it runs the information through 
81
	a dictionary of account information."""
82
83
	#Get the user provided information (encrypting the password when receiving)
84
85
	account_username = raw_input(">>>   ")
86
	account_password = string_encode(raw_input(">>>   "))
87
88
	#Make sure the username is lowercase:
89
	account_username = account_username.lower()
90
	account_username = string_encode(account_username)
91
92
	#Set up a local boolean to determine if the login
93
	#was successful or not
94
	login_success = False
95
96
	#Determine if the user wants to register with this
97
	#local variable:
98
	register = ""
99
100
	#Then run it through the dictionary of usernames
101
	#Loop the dictionary's first key to check for the
102
	#correct username, then do it again for the password:
103
	for username in account_list:
104
		if account_username == username:
105
			if account_password == account_list[username]:
106
				print "Login successful"
107
				login_success = True
108
				data_menu(username)
109
110
	#If the login failed but the username is in the list,
111
	#tell the user the password is incorrect. 
112
	if login_success == False and account_username in account_list:
113
		print "Sorry, password incorrect."
114
115
116
	if login_success == False and account_username not in account_list:
117
		print "Sorry, username not recognized."
118
		register = raw_input("Do you wish to register your information? y/n \n>>>   ")
119
		if register.lower() == "y":
120
			account_register(account_list)
121
122
def account_register(account_list):
123
        #Clientside
124
        """This function serves to take the user's
125
        login information and append it to the account
126
        list so he/she can sign in."""
127
 
128
        #Get the info to add
129
 
130
        user_to_add = raw_input("Username to add \n>>>   ").lower()
131
        user_to_add = string_encode(user_to_add)
132
        pass_to_add = string_encode(raw_input("Password to add \n>>>   "))
133
        pass_to_add2 = string_encode(raw_input("Retype password \n>>>   "))
134
 
135
        #Double check (again) to make sure the username to add is NOT in the system:
136
        if user_to_add in account_list:
137
                print "woah there! That username is already registered."
138
 
139
        #Make sure the two passwords match eachother!
140
        if pass_to_add == pass_to_add2:
141
                print "Saved succesfully!"
142
                update_txt(account_list, user_to_add, pass_to_add)
143
        else:
144
                print "The two passwords do not match."
145
                login(account_list)
146
 
147
        #Then update the dictionary!
148
        txt_to_dict()