Python加密解码文件不起作用,会出现两个错误块
每次我尝试解密保存在文件上的密码并将其与输入的字符串进行比较(在解密和更改数据类型之后),它都会出现解密错误。我尝试了许多代码和其他东西的组合,但仍然出现了这个错误。我不知道该怎么办了,我真的需要一些帮助 主要代码:Python加密解码文件不起作用,会出现两个错误块,python,cryptography,Python,Cryptography,每次我尝试解密保存在文件上的密码并将其与输入的字符串进行比较(在解密和更改数据类型之后),它都会出现解密错误。我尝试了许多代码和其他东西的组合,但仍然出现了这个错误。我不知道该怎么办了,我真的需要一些帮助 主要代码: def login(): from cryptography.fernet import Fernet file = open('key.key', 'rb') key = file.read() file.close() loginask = input(
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()
编码密码(只有顶部是代码):
关键是:
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
回溯(最近一次呼叫最后一次):
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/cryptography/fernet.py”,第113行,在验证签名中
h、 验证(数据[-32:])
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/cryptography/hazmat/primitives/hmac.py”,第70行,在验证中
ctx.验证(签名)
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/cryptography/hazmat/backends/openssl/hmac.py”,第76行,在验证中
提出无效签名(“签名与摘要不匹配”)
cryptography.exceptions.InvalidSignature:签名与摘要不匹配。
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“main.py”,第47行,在
登录()
登录中第32行的文件“main.py”
pawo=f.解密(pawo)
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/cryptography/fernet.py”,第76行,在decrypt中
返回self.\u解密\u数据(数据、时间戳、ttl、int(time.time()))
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/cryptography/fernet.py”,第125行,在解密数据中
自我验证签名(数据)
文件“/opt/virtualenvs/python3/lib/python3.8/site packages/cryptography/fernet.py”,第115行,在验证签名中
提出无效代币
cryptography.fernet.InvalidToken
当用于加密密码的密钥与用于解密的密钥不同时,会出现此错误。当用于加密密码的密钥与用于解密的密钥不同时,会出现此错误
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