@@ -23,43 +23,57 @@ def configRead():
23
23
24
24
def salter (pswd ,saltsize ):
25
25
import string
26
- import secrets
27
- pass
26
+ import secrets
27
+ alphabet = string .ascii_letters + string .digits
28
+ salt = '' .join (secrets .choice (alphabet ) for i in range (saltsize ))
29
+ return pswd + salt ,salt
28
30
29
- def init_usrs (nUsr ):
31
+ def init_usrs (nUsr , saltSize ):
30
32
import hashlib
31
33
usrlist = []
32
34
for index in range (nUsr ):
33
- usrname = input ("Enter username: " )
34
- pswd = input ("Enter password: " )
35
- pswd = hashlib .sha256 (pswd .encode ()).hexdigest ()
35
+ usrname = ''
36
+ pswd = ''
37
+ while usrname == '' :
38
+ usrname = input ("Enter username: " )
39
+ while pswd == '' :
40
+ pswd = input ("Enter password: " )
41
+ pswd ,salt = salter (pswd ,saltSize )
42
+ pswd = hashlib .sha256 (pswd .encode ()).hexdigest ()
36
43
usrlist .append ([])
37
44
usrlist [index ].append (usrname )
38
45
usrlist [index ].append (pswd )
46
+ usrlist [index ].append (salt )
39
47
return usrlist
40
48
41
49
def load_users ():
42
50
usrlist = []
43
51
saveFile = open ("usrlist" , "r" )
44
52
temp = saveFile .read ().split ("," )
45
- for x in range (len (temp )// 2 ):
53
+ for x in range (len (temp )// 3 ):
46
54
usrlist .append ([])
47
- usrlist [x ].append (temp [(2 * x )])
48
- usrlist [x ].append (temp [(2 * x )+ 1 ])
55
+ usrlist [x ].append (temp [(3 * x )])
56
+ usrlist [x ].append (temp [(3 * x )+ 1 ])
57
+ usrlist [x ].append (temp [(3 * x )+ 2 ])
49
58
saveFile .close ()
50
59
return usrlist
51
60
52
61
def save_users (usrlist ,overWrite ):
53
62
if overWrite == True :
54
63
saveFile = open ("usrlist" , "w" )
55
64
else :
56
- saveFile = open ("usrlist" , "a" )
65
+ saveFile = open ("usrlist" , "r" )
66
+ if saveFile .read ()!= '' :
67
+ saveFile = open ("usrlist" , "a" )
68
+ saveFile .write (',' )
69
+ else :
70
+ saveFile = open ("usrlist" , "a" )
57
71
if len (usrlist )> 0 :
58
72
for x in range (len (usrlist )):
59
- if (x - 2 )< len (usrlist ):
60
- saveFile .write (str (usrlist [x ][0 ])+ "," + str (usrlist [x ][1 ])+ "," )
73
+ if (x + 1 )< len (usrlist ):
74
+ saveFile .write (str (usrlist [x ][0 ])+ "," + str (usrlist [x ][1 ])+ "," + str ( usrlist [ x ][ 2 ]) + ',' )
61
75
else :
62
- saveFile .write (str (usrlist [x ][0 ])+ "," + str (usrlist [x ][1 ]))
76
+ saveFile .write (str (usrlist [x ][0 ])+ "," + str (usrlist [x ][1 ])+ "," + str ( usrlist [ x ][ 2 ]) )
63
77
else :
64
78
saveFile .write ('' )
65
79
saveFile .close ()
@@ -69,10 +83,10 @@ def usr_check(usrn,pswd,usrlist):
69
83
index = 0
70
84
Ufound = False
71
85
Pfound = False
72
- pswd = hashlib .sha256 (pswd .encode ()).hexdigest ()
73
86
while Ufound == False and index < len (usrlist ):
74
87
if usrlist [index ][0 ]== usrn :
75
88
Ufound = True
89
+ pswd = hashlib .sha256 (str (pswd + str (usrlist [index ][2 ])).encode ()).hexdigest ()
76
90
if usrlist [index ][1 ]== pswd :
77
91
Pfound = True
78
92
break
@@ -96,7 +110,7 @@ def login_status(Ufound,Pfound,quiet):
96
110
else :
97
111
return False
98
112
99
- def login_init (usrname ,pswd ,overWrite ,quiet ):
113
+ def login_init (usrname ,pswd ,overWrite ,quiet , saltSize ):
100
114
import os
101
115
import sys
102
116
loginSt = False
@@ -116,7 +130,7 @@ def login_init(usrname,pswd,overWrite,quiet):
116
130
except ValueError :
117
131
pass
118
132
if nUsr > 0 :
119
- usrlist = init_usrs (nUsr )
133
+ usrlist = init_usrs (nUsr , saltSize )
120
134
save_users (usrlist ,newFile )
121
135
elif nUsr == 0 :
122
136
save_users ([],True )
@@ -140,7 +154,7 @@ def Auth_test(quiet):
140
154
# quiet=True
141
155
# else:
142
156
# quiet=False
143
- loginSuccess = login_init (usr ,pswd ,False ,quiet )
157
+ loginSuccess = login_init (usr ,pswd ,False ,quiet , 0 )
144
158
print ("Login success status:" , loginSuccess )
145
159
146
160
def main_menu ():
@@ -151,7 +165,7 @@ def main_menu():
151
165
print ("2. Exit" )
152
166
choice = input ("Enter your choice: " )
153
167
if choice == '0' :
154
- login_init ('' ,'' ,True ,quiet )
168
+ login_init ('' ,'' ,True ,quiet , saltSize )
155
169
elif choice == '1' :
156
170
Auth_test (quiet )
157
171
elif choice == '2' :
0 commit comments