Binascii.error:尝试解密密码时填充不正确

Posted

技术标签:

【中文标题】Binascii.error:尝试解密密码时填充不正确【英文标题】:Binascii.error: incorrect padding while trying to decrypting password 【发布时间】:2020-05-28 01:28:53 【问题描述】:

我想加密和解密我的密码,但是当我解密我的密码时,它给了我一个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\密码生成器\venv\Scripts\python.exe" "C:/Users/Raj/PycharmProjects/密码生成器/encrypt.py" 回溯(最近一次通话最后): 文件“C:/Users/Raj/PycharmProjects/password generator/encrypt.py”,第 45 行,在 f1 = Fernet("encrypt.txt") init 中的文件“C:\Users\Raj\PycharmProjects\password generater\venv\lib\site-packages\cryptography\fernet.py”,第 35 行 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: 不正确的填充

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Binascii.error:尝试解密密码时填充不正确的主要内容,如果未能解决你的问题,请参考以下文章

IllegalBlockSizeException:使用填充密码解密时,输入长度必须是 8 的倍数

tplinkdes解密失败

凯撒密码不解密

python解码bash64报错:binascii.Error: Invalid base64-encoded string: number of data characters (7121) can

密码技术应用--AES文件加解密

密码技术应用--SM4文件加解密