如何在python中加密JSON,使用密码学出错

这个问题已经在这里得到解答: How to encrypt JSON in python

但是,我在使用加密模块时遇到错误。

raise TypeError("{} must be bytes".format(name))
   TypeError: data must be bytes

这是我的代码:

from cryptography.fernet import Fernet

key= b'F9tdtAlS5kqVL5_uxKCnOPailXUqKsJmxbHWGLv_H-c='


with open('info.json', 'rb') as loader1:

    params = json.load(loader1)


if xyz(x, y)==True:


        fernet = Fernet(key)

        encrypted=fernet.encrypt(params)

        print(encrypted)

        with open('info.json', 'wb') as writer1:

            json.dump(encrypted, writer1)

        

        print("Operation was a success")

else:

     print("error")


慕无忌1623718
浏览 118回答 1
1回答

吃鸡游戏

如果您在原始答案中看到,他们正在从 json 文件读取内容,而不是使用 json.load,因此他们加密的内容是字节格式,但是您输入的是 json,因此错误数据必须是字节。快速修复方法是将 json 转换为字符串json.loads,然后将其编码为字节格式,然后再将其输入 fernet.encrypt()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python