Skip to content

Commit c89f4d9

Browse files
authored
Merge pull request #14 from 1to5pc/2-password-security
Merge minor development branch with main
2 parents 3057163 + e6e6825 commit c89f4d9

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed

usrcheck.py

+32-18
Original file line numberDiff line numberDiff line change
@@ -23,43 +23,57 @@ def configRead():
2323

2424
def salter(pswd,saltsize):
2525
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
2830

29-
def init_usrs(nUsr):
31+
def init_usrs(nUsr, saltSize):
3032
import hashlib
3133
usrlist=[]
3234
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()
3643
usrlist.append([])
3744
usrlist[index].append(usrname)
3845
usrlist[index].append(pswd)
46+
usrlist[index].append(salt)
3947
return usrlist
4048

4149
def load_users():
4250
usrlist=[]
4351
saveFile = open("usrlist", "r")
4452
temp = saveFile.read().split(",")
45-
for x in range(len(temp)//2):
53+
for x in range(len(temp)//3):
4654
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])
4958
saveFile.close()
5059
return usrlist
5160

5261
def save_users(usrlist,overWrite):
5362
if overWrite==True:
5463
saveFile = open("usrlist", "w")
5564
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")
5771
if len(usrlist)>0:
5872
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])+',')
6175
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]))
6377
else:
6478
saveFile.write('')
6579
saveFile.close()
@@ -69,10 +83,10 @@ def usr_check(usrn,pswd,usrlist):
6983
index=0
7084
Ufound=False
7185
Pfound=False
72-
pswd=hashlib.sha256(pswd.encode()).hexdigest()
7386
while Ufound==False and index<len(usrlist):
7487
if usrlist[index][0]==usrn:
7588
Ufound=True
89+
pswd=hashlib.sha256(str(pswd+str(usrlist[index][2])).encode()).hexdigest()
7690
if usrlist[index][1]==pswd:
7791
Pfound=True
7892
break
@@ -96,7 +110,7 @@ def login_status(Ufound,Pfound,quiet):
96110
else:
97111
return False
98112

99-
def login_init(usrname,pswd,overWrite,quiet):
113+
def login_init(usrname,pswd,overWrite,quiet,saltSize):
100114
import os
101115
import sys
102116
loginSt=False
@@ -116,7 +130,7 @@ def login_init(usrname,pswd,overWrite,quiet):
116130
except ValueError:
117131
pass
118132
if nUsr>0:
119-
usrlist=init_usrs(nUsr)
133+
usrlist=init_usrs(nUsr,saltSize)
120134
save_users(usrlist,newFile)
121135
elif nUsr==0:
122136
save_users([],True)
@@ -140,7 +154,7 @@ def Auth_test(quiet):
140154
# quiet=True
141155
# else:
142156
# quiet=False
143-
loginSuccess=login_init(usr,pswd,False,quiet)
157+
loginSuccess=login_init(usr,pswd,False,quiet,0)
144158
print("Login success status:", loginSuccess)
145159

146160
def main_menu():
@@ -151,7 +165,7 @@ def main_menu():
151165
print("2. Exit")
152166
choice = input("Enter your choice: ")
153167
if choice == '0':
154-
login_init('','',True,quiet)
168+
login_init('','',True,quiet,saltSize)
155169
elif choice == '1':
156170
Auth_test(quiet)
157171
elif choice == '2':

0 commit comments

Comments
 (0)