Advertisement
Guest User

йцу123

a guest
Oct 5th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.67 KB | None | 0 0
  1. pas= '123456'
  2. passs = 'abcd12'
  3. import sqlite3
  4. import string
  5. import random
  6.  
  7. #import menu
  8. #import data_time
  9.  
  10. #пароль случайное число случайных позиций
  11.  
  12.  
  13. #password = "mypass"
  14. #passwordByChar = list(password)
  15. #print(passwordByChar)
  16. #print(passwordByChar[3])
  17. import getpass
  18. #pw = getpass.getpass()
  19.  
  20. conn = sqlite3.connect('laba21.db')
  21. c = conn.cursor()
  22. c.execute('''CREATE TABLE users (id int auto_increment primary key,name varchar, password varchar)''')
  23. c.execute("INSERT INTO users (name,password) VALUES ('admin','123')") # создается суперпользователь
  24. c.execute("INSERT INTO users (name,password) VALUES ('user','123')")  #для теста второй пользователь обычный
  25. #c.execute("INSERT INTO users (name,password) VALUES ('user1','qwerty')")  #для теста третий пользователь обычный
  26. curu = 'admin'  #для проверки
  27. token = 1
  28. print("для входа в систему нужно ввести `login`, после авторизации `help` - для вывода доступных команд")
  29. while 1:
  30.     #print("для входа в систему нужно ввести `login`, после авторизации `help` - для вывода доступных команд")
  31.     command = input()
  32.  
  33.     if command == 'login': #ввожу имя потом ищу по базе даю пароль, если апроль верно токен=1 в логауте токен=0
  34.         print("log_in")
  35.         curu = input("вводим логин:")
  36.        
  37.         c.execute("SELECT password FROM users WHERE name=?", (curu,)) #хватаю пароль по логину
  38.  
  39.    #     number = random.randint(1, 6)  # значение от 1 до 6 органичил
  40.         b = c.fetchone() #разбил пароль на символы
  41.         print(b)
  42.         e = str(b)
  43.        
  44.         print("b =" + e)
  45.        # print (e)
  46.         i = 0
  47.         print("проверим позиций: ")# + str(number))  #str(переменная( превращает что-то в строку
  48.        # for i in range(number):
  49.           #  g = random.randint(1,6)
  50.             ##print("позиция" + str(g))
  51.             #print(e[i])
  52.             ##check = e[g-1]
  53.           #  print("check assist:" + check)
  54.        
  55.         box = input()
  56.         q = 123
  57.         q = str(q)
  58.         print("box = " + box)
  59.             #box = getpass.getpass('Password:')
  60.             #print(box)
  61.        # print("box=" + box +"  b=" + b)
  62.            
  63.    
  64.         if box == e:
  65.                 token = 1
  66.         else:
  67.                 token = 0
  68.                 print("ошибка ввода пароля")
  69.                 break
  70.  
  71.         if token == 1:
  72.             print("вы вошли в систему под логином: " + curu)
  73.  
  74.  
  75.     if token != 0:
  76.  
  77.         if command == 'logout': #+++++++++++++++++++
  78.             print("вы вышли из системы")
  79.             token = 0
  80.  
  81.         if command == 'help': #+++++++++++++++++++++++
  82.             menu.help()
  83.  
  84.         if command == 'datetime': #+++++++++++++++++
  85.             data_time.datetime()
  86.  
  87.  
  88.         if curu == 'admin':
  89.             if command == 'adduser':  #++++++++++++++++++++
  90.                 print("adduser: вводим новый логин-пароль")
  91.                 newname = input()
  92.                 newpass = input()
  93.                 c.execute("INSERT INTO users (name,password) VALUES (?, ?)",(newname,newpass,))
  94.  
  95.  
  96.  
  97.             if command == 'deleteuser':  #+++++++++++++
  98.                 print("deluser - удалить пользователя")
  99.                 deltarget = input("ввести имя того кого хотим удалить: ")
  100.                 c.execute("DELETE FROM users WHERE name=?",(deltarget,))
  101.                 print("пользователь "+deltarget+" удален")
  102.  
  103.         if command == 'changepaz':  # +++++++++++++++++++++++
  104.             if curu != 'admin':
  105.                 print(
  106.                     "changepassword - смена пароля, но сначала нужно ввести повторно свой логин и затем старый пароль")  # добавить проверку
  107.  
  108.                 c.execute("SELECT password FROM users WHERE name=?", (curu,))  # хватаю пароль по логину
  109.  
  110.                 number = random.randint(1, 6)  # значение от 1 до 6 органичил
  111.                 b = c.fetchone()  # разбил пароль на символы
  112.                 e = b[0]
  113.                 print(e[1])
  114.                 i = 0
  115.                 print("проверим позиций: " + str(number))  # str(переменная( превращает что-то в строку
  116.                 for i in range(number):
  117.                     g = random.randint(1, 6)
  118.                     print("позиция" + str(g))
  119.                     # print(e[i])
  120.                     check = e[g-1]
  121.                     print("check assist:" + check)
  122.                     box = input()
  123.                     if check == box:
  124.                         # permission = 1
  125.                         newpas = input()
  126.                         c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu))
  127.                         print("пароль был успешно изменен")
  128.                         break
  129.  
  130.                     else:
  131.                         # permission = 0
  132.                         print("ошибка ввода пароля - попытка сменить его провалилась")
  133.                         break
  134.  
  135.                 newpas = input()
  136.                 c.execute("UPDATE users SET password=? WHERE name=?", (newpas, curu,))
  137.                 print("пароль изменен")
  138.  
  139.             else:  # админский участок
  140.                 print("вводим логин того кому меняем пароль и новый пароль:")
  141.                 logtarget = input()
  142.                 newpas = input()
  143.                 c.execute("UPDATE users SET password=? WHERE name=?", (newpas, logtarget))
  144.  
  145.         if command == 'currentinfo': #++++++++++++++
  146.             print("current_info - информация о текущем пользователе")
  147.             #c.execute('SELECT * from users')
  148.              
  149.             c.execute("SELECT * FROM users WHERE name=?", (curu,))
  150.             row = c.fetchone()
  151.             print(row)
  152.  
  153.         if command == 'changelog':
  154.             print("введите свой новый логин\n")
  155.             newlog = input()
  156.             print("заменили ваш логин " + curu + " на введеный вами" + newlog)
  157.             c.execute("UPDATE users SET name=? WHERE name=?", (newlog,curu))
  158.             curu = newlog
  159.  
  160.  
  161.         if command == 'allinfo':  #++++++++++
  162.             print("all_info - доступная информация о всех пользователях")
  163.             if curu == 'admin':
  164.                
  165.                 c.execute('SELECT * FROM users')
  166.                 row = c.fetchone()
  167.                 while row is not None:
  168.                  print(" Логин: " + row[0] + " | Пароль: " + row[1])
  169.                  row = c.fetchone()
  170.             if curu != 'admin':
  171.                  
  172.                 c.execute('SELECT name FROM users')
  173.                 row = c.fetchone()
  174.                 while row is not None:
  175.                     print(" Логин: " + row[0])
  176.                     row = c.fetchone()
  177.  
  178.     else:
  179.          print("залогиньтесь для работы")
  180.  
  181.  
  182.  
  183.     if command == 'exit': #++++++++++++++
  184.         print("exit")
  185.         break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement