我对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…