首页 > 解决方案 > Binascii.error:尝试解密密码时填充不正确

问题描述

我想加密和解密我的密码,但是当我解密我的密码时,它给了我一个binascii.error: incorrect padding错误。

f1 = Fernet("encrypt.txt")
decrypted = f1.decrypt("b'gAAAAABeQ-2YA7zNJBA_AgVEEwcJNYMNPO3UzO9ujsInxlz_0DqIrMHlVQgRUyN9PTyGZJiN-FJ3qLJipKv2KESr3qx4yM-T2g=='", "encrypt.txt")
print(decrypted)

这是错误:

"C:\Users\Raj\PycharmProjects\password generater\venv\Scripts\python.exe" "C:/Users/Raj/PycharmProjects/password generater/encrypt.py" Traceback (最近一次调用最后): 文件 "C: /Users/Raj/PycharmProjects/password generater/encrypt.py",第 45 行,在 f1 = Fernet("encrypt.txt") 文件 "C:\Users\Raj\PycharmProjects\password generater\venv\lib\site-packages \cryptography\fernet.py",第 35 行,在init key = base64.urlsafe_b64decode(key) 文件“C:\Users\Raj\AppData\Local\Programs\Python\Python36-32\lib\base64.py”中,行133,在 urlsafe_b64decode 返回 b64decode(s) 文件“C:\Users\Raj\AppData\Local\Programs\Python\Python36-32\lib\base64.py”,第 87 行,在 b64decode 返回 binascii。a2b_base64(s) binascii.Error: 不正确的填充

标签: pythonencryptionbase64

解决方案


您的意思是使用字节而不是字符串吗?如果是这样,请删除双引号:

f1.decrypt(b'gAAAAABeQ-2YA7zNJBA_AgVEEwcJNYMNPO3UzO9ujsInxlz_0DqIrMHlVQgRUyN9PTyGZJiN-FJ3qLJipKv2KESr3qx4yM-T2g==', 'encrypt.txt')

推荐阅读