python - 使用密码学的 Python 解密会添加随机字符
问题描述
所以我将密码和用户名存储在单独的文件中,我想解密它们并检查它们,但是每当我解密单词时,它都会在原始单词中添加字符:
def checkLogin(usernameInput, passwordInput, key, Usr):
f = Fernet(key)
with open("username.csv", "rb") as file:
encryptedUsername = file.read()
decryptedUsername = f.decrypt(encryptedUsername)
with open("password.csv", "rb") as file:
encryptedPassword = file.read()
decryptedPassword = f.decrypt(encryptedPassword)
print(decryptedPassword)
print(decryptedUsername)
usernameInput = usernameInput.get()
passwordInput = passwordInput.get()
当我打印它返回的解密字符串时,原始用户名和密码是:“Admin”和“SecurePassword”:“b'SecurePassword\r\n'”和“b'Admin'”
解决方案
您还没有真正展示文件示例来说明为什么要添加其他字符,因此我将仅提供 Python 中的快速修复解决方案。您可以在将and转换为字符串strip()
后使用删除“b”、“\r”和“\n” :usernameInput
passwordInput
usernameInput = usernameInput.get().decode("utf-8").strip("\n").strip("\r")
passwordInput = passwordInput.get().decode("utf-8").strip("\n").strip("\r")
strip()
基本上去掉了字符串开头和结尾处提供的参数,decode()
并将变量转换为字符串。
推荐阅读
- javascript - ngx-datatable 服务器端滚动 - 表格在到达最后一项时不断调用 api 并且数据永远不会更新
- azure - 我在哪里可以找到有关如何将 windows 服务器 AD 迁移到 Azure 云的简单资源
- angular - 为什么 HTTP PUT 请求在几次请求后不起作用?
- javascript - 如何正确解析从 php 接收到的字符串
- python - 为什么这种二进制到十进制的转换不适用于偶数?
- prolog - 以错误顺序出现的变量
- rabbitmq - Rabbitmq localhost:15672 无法登录
- jenkins - 詹金斯服务器不采用人工服务器详细信息
- javascript - 使用表单登录网页
- node.js - 如何使用 Node.js/Express 转发从 API 接收的文件