import hashlib, os, json, binascii



users = []
class user:
    def __init__(self, username, password):
        self.username = username
        self.stored_key = set_password(password)
        
        
def set_password(password):
      salt = hashlib.sha256(os.urandom(60)).hexdigest().encode('ascii')
      pwdhash = hashlib.pbkdf2_hmac('sha512', password.encode('utf-8'), salt, 1000000)
      pwdhash = binascii.hexlify(pwdhash)
      return (salt + pwdhash).decode('ascii')

def pw_check(stored_password, provided_password):
      salt = stored_password[:64]
      pwdhash = hashlib.pbkdf2_hmac('sha512', provided_password.encode('utf-8'), salt.encode('ascii'), 1000000)
      stored_password = stored_password[64:]
      pwdhash = binascii.hexlify(pwdhash).decode('ascii')
      return pwdhash == stored_password

def make_user(username, password):
    global user, users
    User = user(username, password)
    users.append(User)

make_user("bob", "123")
make_user("joe", "123")

def write_json(dictionary):
    with open("acounts.json", "a") as file:
        json.dump(dictionary, file, indent = 4, separators=(',',': '))


for User in users:
    print(pw_check(User.stored_key, "123"))
    write_json(User.__dict__)
c107e8a06885d398845d9237a5b586adb394b43525440f166372f4f33d4436fcdd877bbd43e0937fc0137af458c132f338d1bdbab61d5c3b02e8261a0403a469fbb73629c87f10fc4fe7d0c7f64b959d38df5e6a37da19e08e41b062dc87b1d8
True
5f1746a7f465402b65615803b361f90c48209f6e09a9a53b04512232e151b29f8b5e0c9940bf150ffbcd52f84c02d27baacf14d29a11f822cb3385ede918544ca01fc9abda1588077268873d66c6d56490b5a765fffb20fc22073d0acaac0eaf
True
with open("acounts.json", "a") as file:
    data = json.load(file)
print(data)
---------------------------------------------------------------------------
UnsupportedOperation                      Traceback (most recent call last)
/home/dreamerblock/L/_notebooks/pw.ipynb Cell 2 in <cell line: 1>()
      <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a> with open("acounts.json", "a") as file:
----> <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=1'>2</a>     data = json.load(file)
      <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W6sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2'>3</a> print(data)

File ~/anaconda3/lib/python3.9/json/__init__.py:293, in load(fp, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    274 def load(fp, *, cls=None, object_hook=None, parse_float=None,
    275         parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
    276     """Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
    277     a JSON document) to a Python object.
    278 
   (...)
    291     kwarg; otherwise ``JSONDecoder`` is used.
    292     """
--> 293     return loads(fp.read(),
    294         cls=cls, object_hook=object_hook,
    295         parse_float=parse_float, parse_int=parse_int,
    296         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)

UnsupportedOperation: not readable
Numbers = []

while True:
    number = int(input("Please enter a number:"))
    if number == 0:
        break
    Numbers.append(number)

print(Numbers)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/dreamerblock/L/_notebooks/pw.ipynb Cell 2 in <cell line: 4>()
      <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0'>1</a> Numbers = []
      <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2'>3</a> while True:
----> <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=3'>4</a>     number = int(input("Please enter a number:"))
      <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=4'>5</a>     if number == 0:
      <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W2sdnNjb2RlLXJlbW90ZQ%3D%3D?line=5'>6</a>         break

ValueError: invalid literal for int() with base 10: ''
from passlib.hash import sha256_crypt
users = []
class user:
    def __init__(self, username, password):
        self.username = username
        self.key = set_password(password)
    
    def pw_check(self, check_pw):
        pw_hash = hashlib.pbkdf2_hmac('sha256', check_pw.encode('utf-8'), self.salt, 1000000)
        if pw_hash == self.key:
            print("pw correct")
        else:
            print("pw incorrcet")
        

def set_password(password):
    pw_hash = sha256_crypt.hash(password)
    return pw_hash

def make_user(username, password):
    global user, users
    User = user(username, password)
    users.append(User)

make_user("bob", "123")
make_user("joe", "123")
print(users)

def write_json(dictionary):
    with open("sample.json", "w") as file:
        
        file_data = json.load(file)

        file_data["emp_details"].append(dictionary)

        file.seek(0)
        
        json.dump(dictionary, file, indent = 4)

for User in users:
    write_json(User.__dict__)
[<__main__.user object at 0x7fa0aa832880>, <__main__.user object at 0x7fa0aaa0a310>]
---------------------------------------------------------------------------
UnsupportedOperation                      Traceback (most recent call last)
/home/dreamerblock/L/_notebooks/pw.ipynb Cell 3 in <cell line: 39>()
     <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=36'>37</a>         json.dump(dictionary, file, indent = 4)
     <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=38'>39</a> for User in users:
---> <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=39'>40</a>     write_json(User.__dict__)

/home/dreamerblock/L/_notebooks/pw.ipynb Cell 3 in write_json(dictionary)
     <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=28'>29</a> def write_json(dictionary):
     <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=29'>30</a>     with open("sample.json", "w") as file:
---> <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=30'>31</a>         file_data = json.load(file)
     <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=32'>33</a>         file_data["emp_details"].append(dictionary)
     <a href='vscode-notebook-cell://wsl%2Bubuntu/home/dreamerblock/L/_notebooks/pw.ipynb#W4sdnNjb2RlLXJlbW90ZQ%3D%3D?line=34'>35</a>         file.seek(0)

File ~/anaconda3/lib/python3.9/json/__init__.py:293, in load(fp, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    274 def load(fp, *, cls=None, object_hook=None, parse_float=None,
    275         parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
    276     """Deserialize ``fp`` (a ``.read()``-supporting file-like object containing
    277     a JSON document) to a Python object.
    278 
   (...)
    291     kwarg; otherwise ``JSONDecoder`` is used.
    292     """
--> 293     return loads(fp.read(),
    294         cls=cls, object_hook=object_hook,
    295         parse_float=parse_float, parse_int=parse_int,
    296         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)

UnsupportedOperation: not readable