基本信息
我正在创建一个python脚本,它可以用以前的会话数据加密和解密文件。
问题所在
我可以解密我的文件并使用密钥读取它。这将返回一个bytes字符串,我可以将其转换为字符串。但是,这个字符串需要转换为字典,我不能这样做。使用ast,json和eval时,我遇到了错误。
字节字符串
decrypted = fernet.decrypt(encrypted)
字符串
string = decrypted.decode("UTF-8").replace("'", '"')
如果我使用eval()或ast.literal_eval(),我会得到以下错误:
然后我尝试使用json.loads(),并得到以下错误:
在两张图片上屏蔽的信息是为了保护我的SSH连接。在第一张图片中,它在我的IP地址的最后一位给了我一个语法错误。
功能
调用时负责此操作的函数如下所示:
def FileDecryption():
with open('enc_key.key', 'rb') as filekey:
key = filekey.read()
filekey.close()
fernet = Fernet(key)
with open('saved_data.txt', 'rb') as enc_file:
encrypted = enc_file.read()
enc_file.close()
decrypted = fernet.decrypt(encrypted)
print(decrypted)
string = decrypted.decode("UTF-8").replace("'", '"')
data = f'{string}'
print(data)
#data = eval(data)
data = json.loads(data)
print(type(data))
for key in data:
#command_string = ["load", data[key][1], data[key][2], data[key][3], data[key][4]]
#SSH.CreateSSH(command_string)
print(key)
任何帮助都将不胜感激。谢谢!
1条答案
按热度按时间1hdlvixo1#
您的数据似乎一开始就写错了,但没有完整的示例很难说。
下面是一个完整的示例,它往返于支持JSON的数据对象。
输出: