Dateien hochladen nach „“

master
Justus Jan Nico Wolff 2022-07-28 19:17:08 +02:00
parent 07e6ebe859
commit 678a0bd740
1 changed files with 83 additions and 0 deletions

83
main.py 100644
View File

@ -0,0 +1,83 @@
print("newcmd setup start.")
# init
print("importing modules")
try:
import ast
import hashlib
from simplecrypt import encrypt, decrypt
from copy import deepcopy
except ModuleNotFoundError:
print("error: some modules are missing or not being found")
print("done")
print("loading users")
users = open("ressources/users", 'r')
users = users.read()
users = ast.literal_eval(users)
userslen = len(users)
usersdata = {}
if userslen != 0:
errorcount = 0
sucesscount = 0
for i in range(len(users)):
try:
tempuser = users[i]
usersdata[tempuser["name"]] = tempuser
sucesscount += 1
except:
errorcount += 1
print("loading users done. {} users failed to load {} users loaded correctly".format(errorcount, sucesscount))
else:
print("no users found")
# define's
def login(user, password):
backuser = user
h = hashlib.new('sha256')
h.update(password.encode())
h = h.hexdigest()
if h == user["pass"]:
decrypted = decrypt(h, user["data"])
backuser["data"] = ast.literal_eval(decrypted.decode('utf-8'))
backuser["pass"] = h
return backuser
else:
return False
def updateusersfile(users):
usersfile = {}
for i in range(len(users)):
usersfile[i] = list(users.values())[i]
file = open("ressources/users", 'w')
file.write(str(usersfile))
file.close()
def createnewaccount():
name = input("enter name for your new user: ")
password = input("enter password for your new user: ")
back = {}
back["name"] = name
h = hashlib.new('sha256')
h.update(password.encode())
h = h.hexdigest()
back["pass"] = h
back["data"] = {}
user = deepcopy(back)
user["data"] = encrypt(h, str({"rights": "Admin"}).encode())
usersdata[user["name"]] = user
updateusersfile(usersdata)
return back
# login
if userslen != 0:
count = 0
for i in usersdata:
count += 1
print("{}: {}".format(count, i))
userin = int(input("please enter target user to login by number: "))
if 1 <= userin <= count:
back = False
while back == False:
password = input("please enter password for {}: ".format(list(usersdata.keys())[userin-1]))
back = login(list(usersdata.values())[userin-1], password)
user = back
else:
user = createnewaccount()