gpt4 book ai didi

javascript - Python:可以使用 JSON 将包含加密部分的消息发送到 Python 服务器吗?

转载 作者:行者123 更新时间:2023-11-28 20:33:04 24 4
gpt4 key购买 nike

我对 JSON 还不太了解,我刚刚开始学习本教程,所以请耐心等待:

http://pymotw.com/2/json/

我的问题是我可以使用 JSON 将包含加密部分的消息发送到 Python 服务器,以便它可以将其转发到另一台服务器吗?

该消息将来自通过 SSL 的 Javascript 客户端,其中包含 Python 服务器的一些信息以及要转发到另一个 Python 服务器的加密消息。该消息将如下所示:

{ref_obj { msg_obj }_pub_k }_SSL

这可能吗?我看到了这篇文章:

Python pycrypto module: why simplejson can't dumps encrypted string?

如果这不能用 JSON 来完成,有人可以建议应该如何完成吗?我唯一的要求是原始消息必须来自 Javascript 客户端(因为它将是 Chrome 中的插件)并转到 Python 服务器进行转发。

提前致谢!

最佳答案

是的,

但某些字符串必须在发送之前进行转义,然后在另一端进行转义。通过 from base64 import b64encode, b64decode 或类似的方法。

这样做的原因是 JSON 数据必须是 string 或 int 值,基本上没有其他值。

json.dumps({1 : 2, 'hey' : 'you'}) 可以使用,这就是您需要保留的格式。这意味着二进制数据可能会与 json 混淆,因为它需要“正常”字符串。 b64encode 确保它只是字符串中的有效字符,而不是其他字符:)

取决于您想要完成的任务。您还可以加密整个 JSON 字符串并将其发送到服务器,解密并将其解析为 JSON。

将加密视为隧道。

JSON -> 加密(JSON-string) -> 服务器 -> 解密 -> 解析 JSON

或者,如果您需要 JSON 数据作为元数据,请执行第一个选项。

这是一种将所有流量封装为“加密”的方法

def encrypt(s):
encryptedString = AES.encrypt(s)
return b64encode(encryptedString)

sock.connect(server)
jsondata = {1 : 2}
sock.send( encrypt(json.dumps(jsondata)) )

在服务器上您只需执行以下操作:

data = sock.recv(1024)
jsondata = json.loads( b64decode(decrypt(data))) )
print(jsondata)

这是一种仅加密 json 数据某些部分的方法:

def encrypt(s):
encryptedString = AES.encrypt(s)
return b64encode(encryptedString)

sock.connect(server)
jsondata = {1 : encrypt(2)}
sock.send( json.dumps(jsondata) )

在服务器上:

data = sock.recv(1024)
jsondata = json.loads(data)
jsondata[1] = decrypt(b64decode(jsondata[1]))

关于javascript - Python:可以使用 JSON 将包含加密部分的消息发送到 Python 服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15973358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com