Advertisement
Guest User

Untitled

a guest
Oct 31st, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. # Классы будут в этом файле
  2.  
  3. import blowfish
  4. from os import urandom
  5.  
  6.  
  7. class Account:
  8. """
  9. __login -> contains users login
  10. __password -> contains users password
  11. __cipher -> contains cipher
  12. __iv -> ??? needed for blowfish
  13. """
  14.  
  15. def encrypt(self):
  16. if self.__login is not None:
  17. self.__login = b"".join(self.__cipher.encrypt_cfb(self.__login, self.__iv))
  18. if self.__password is not None:
  19. self.__password = b"".join(self.__cipher.encrypt_cfb(self.__password, self.__iv))
  20.  
  21. def __init__(self, login="", password=""):
  22. if login is not None:
  23. self.__login = login.encode()
  24. else:
  25. self.__login = None
  26.  
  27. if password is not None:
  28. self.__password = password.encode()
  29. else:
  30. self.__password = None
  31.  
  32. self.__cipher = blowfish.Cipher(b'#dskfdfhg#dflg3642/e=wjh+dflwqo22de94hiiwehbsjwk')
  33. self.__iv = urandom(8)
  34. self.encrypt()
  35.  
  36. def return_account(self):
  37. if self.__login is not None:
  38. login_decrypted = b"".join(self.__cipher.decrypt_cfb(self.__login, self.__iv))
  39. else:
  40. login_decrypted = b''
  41. if self.__password is not None:
  42. pass_decrypted = b"".join(self.__cipher.decrypt_cfb(self.__password, self.__iv))
  43. else:
  44. pass_decrypted = b''
  45. return [login_decrypted.decode(), pass_decrypted.decode()]
  46.  
  47.  
  48. class User:
  49. """
  50. __accounts -> not really needed dict. Just for now
  51. __userId -> user id
  52. __firstName ->
  53. __lastName ->
  54. """
  55. __accounts = {}
  56.  
  57. def __init__(self, first_name=None, last_name=None, user_id=None):
  58. self.__userId = user_id
  59. self.__firstName = first_name
  60. self.__lastName = last_name
  61.  
  62. def name(self):
  63. return [self.__firstName, self.__lastName]
  64.  
  65. def add_account(self, site, acc):
  66. if self.__accounts.get(site) is None:
  67. self.__accounts[site] = acc
  68. return True
  69. else:
  70. return False
  71.  
  72. def return_account(self, site):
  73. temp = self.__accounts.get(site)
  74. if temp is not None:
  75. return [site, temp.return_account()]
  76. else:
  77. return None
  78.  
  79. def return_id(self):
  80. return self.__userId
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement