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

我对JSON的了解不多,我刚刚开始学习本教程,所以请多多包涵:

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

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

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

{ref_obj { msg_obj }_pub_k }_SSL

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

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

如果无法使用JSON完成此操作,有人可以建议如何完成吗?我唯一的要求是原始消息必须来自Javascript客户端(因为它将是Chrome中的插件),然后转到Python服务器进行转发。

提前致谢!

javascript大神给出的解决方案

是,

但是某些字符串在发送前必须先转义,然后在另一端不转义。
from base64 import b64encode, b64decode或类似的东西。

这样做的原因是,JSON数据必须为字符串或整数值,基本上没有其他内容。

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

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

将加密视为隧道。

JSON->加密(JSON-字符串)->服务器->解密->解析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]))

从Chrome WebDriver访问getEventListeners(Python) - javascript

目标:从Selenium WebDriver获取附加到节点的所有事件我正在使用selenium-python,我想执行一个javascript脚本(通过driver.execute_script('my js script')。该脚本使用getEventListeners,仅在Chrome上可用。我成功使用了driver = webdri…

跨python套接字将JSON传递给Javascript - javascript

我正在使用python套接字与JavaScript客户端进行通信。http://docs.python.org/2/library/socket.html然后遵循JavaScript代码的一部分,ws = new WebSocket("ws://localhost:7777/"); ws.onopen = function(){ aler…

读取客户端上的提要时出现NotAllowedException - javascript

嗨,我是GetStream的新手,仍然在学习。这是我正在使用的压缩版本。我有一个python后端,可在其中创建用户令牌:client = stream.connect(...) token = client.create_user_token(id) return token 然后,我将令牌传递给js前端,在该前端中该令牌用于检索该用户的feed活动。我正在…

Python csv.reader()转换为JS吗? - javascript

我有一个python代码,例如:import csv reader = csv.reader(open('myText.txt', 'r'), delimiter=",") for row in reader: print row[0] + 'is' + row[1] + �…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…