feat: Added python code

This commit is contained in:
vitaliy 2025-04-30 11:48:33 +03:00
parent 555facc099
commit 5cb2e1483f
2 changed files with 134 additions and 0 deletions

View File

@ -0,0 +1,89 @@
import uuid
import csv
# Генерация случайного UUID (версия 4)
import hashlib
random_uuid = uuid.uuid4()
DB = 'password_db.csv'
class UserFoundException(Exception):
pass
class PasswordWrongException(Exception):
pass
def get_db_password():
"""Читаем файл паролей в список"""
users = [ ]
with open(DB, newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=':')
for row in spamreader:
users.append(row)
return users
def checkUser(login: str) -> bool:
"""Проверяем пользователя в БД"""
db = get_db_password()
for row in db:
if login == row[1]:
return row
# raise UserFoundException("Такой пользователь существует!")
try:
checkUser('user')
except UserFoundException as e:
print(e)
def calculate_md5(data):
"""Вычисляет MD5-хеш для данных."""
md5_hash = hashlib.md5(data.encode('utf-8')).hexdigest()
return md5_hash
def login(username, passwd):
user = checkUser(username)
print(user[2])
passwd_md5 = calculate_md5(str(passwd))
print(passwd_md5)
isRight = False if (user[2] == passwd_md5) else True
if isRight:
raise PasswordWrongException
try:
checkUser('user')
except UserFoundException as e:
print(e)
except PasswordWrongException as e:
print(e)
login('oper', 123)
exit(0)
def logout(username):
#todo: Сделать флаг выхода из системы
pass
def delete_user(username):
#todo: Дописать удаление пользователя
pass
def registration(login, passwd, rep_passwd, phone, email):
"""Регистрация пользователей."""
if passwd == rep_passwd:
passwd_md5 = calculate_md5(passwd)
#print(f"MD5-хеш для '{passwd}': {passwd_md5}")
str = f"{random_uuid}:{login}:{passwd_md5}:{phone}:{email}\n"
with open("password_db.csv", "a+") as fd:
fd.write(str)
_login = input("login:")
_passwd = input("passwd:")
_rep_passwd = input("rep_passwd:")
_phone = input("phone:")
_email = input("email:")
registration( _login, _passwd, _rep_passwd, _phone, _email );

45
code/python/random_num.py Executable file
View File

@ -0,0 +1,45 @@
import random
from random import random as r
LIMIT = 1
rand_int = random.randint(1, 100)
counter_fail = 0
def game():
flag = True
#counter_fail = 0
def wrapper():
nonlocal число
число = число + 1
print(число)
while flag:
число = int(input("Введите число:"))
#print(dir(число))
if ( rand_int > число ):
print("Угадываемое число больше!")
global counter_fail
counter_fail += 1
elif (rand_int < число):
print("Угадываемое число меньше!")
counter_fail += 1
else:
flag = False
print("Win!")
if LIMIT == counter_fail:
print("Fatality!")
break
return (2,3)
w, r = game()
print(w)
print(r)
#print(game())