Python 解码文件的密码学不起作用,出现两个错误块

Python Cryptography decoding a file does not work and comes up with two blocks of errors

每次我尝试解密保存在文件中的密码并将其与输入的字符串(在解密和更改数据类型之后)进行比较时,都会出现解密错误。我尝试了很多代码和其他东西的组合,但它仍然会出现这个错误。我不知道该怎么办了,我真的需要一些帮助。

主要代码:

def login():
  from cryptography.fernet import Fernet

  file = open('key.key', 'rb')
  key = file.read()
  file.close()

  loginask = input('What is your username?')

  transf_loginask = 'login_list.' + str(loginask)

  if path.exists(loginask) == True:
    found = input('ACCOUNT FOUND! PLEASE INPUT PASSWORD:\n')
    file = open(loginask, 'rb+')
    pawo = file.readline()

    pawo = str(pawo, 'utf-8')
    pawo = bytes(pawo, 'utf-8')

    f = Fernet(key)
    pawo = f.decrypt(pawo)

    pawo = str(pawo, 'utf-8')

    if pawo == found:
      print('ACCESS GRANTED.')
      menu()
    else:
      print('ERROR, WRONG PASSWORD.')
      login()
  else:
    print('ACCOUNT NOT FOUND. PLEASE CHECK FOR SPELLING MISTAKES OR CREATE ONE.')



login()

加密后的密码(只有最上面的是密码):

gAAAAABf52Z3OUR8eVc1fePwp73clVr5OZtw83q5iyK_lxu7Z5lQTbj2wE_dH1XuesMGrj5TBtQoRpe5Ulu9GXPScIs6SmVFjQ==
100
1953131
999999
999999
999999
999999
999999

关键:

DEfjraDq_DJbMx-s9uXDPOk8umKYgRzNgQ9eu-OpQ3w=

错误:

Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/cryptography/fernet.py", line 113, in _verify_signature
    h.verify(data[-32:])
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/cryptography/hazmat/primitives/hmac.py", line 70, in verify
    ctx.verify(signature)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/cryptography/hazmat/backends/openssl/hmac.py", line 76, in verify
    raise InvalidSignature("Signature did not match digest.")
cryptography.exceptions.InvalidSignature: Signature did not match digest.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main.py", line 47, in <module>
    login()
  File "main.py", line 32, in login
    pawo = f.decrypt(pawo)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/cryptography/fernet.py", line 76, in decrypt
    return self._decrypt_data(data, timestamp, ttl, int(time.time()))
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/cryptography/fernet.py", line 125, in _decrypt_data
    self._verify_signature(data)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/cryptography/fernet.py", line 115, in _verify_signature
    raise InvalidToken
cryptography.fernet.InvalidToken

当您用于加密密码的密钥与用于解密的密钥不同时,就会出现该错误。