我正在使用crypto ++将AES加密的http请求发送到应用引擎,计划在那里解密它们。我的计划是在'?'之后加密部分所以它就像:
http://myurl.com/Command?eiwjfsdlfjldkjfs加密时。但是,我很难搞清楚如何在另一端解密它,并且用户仍然会在响应中获取()来获取args。有人可以建议我采取错误的方法吗?我应该解密而不是使用get(),而是使用我自己的解析器吗?
答案 0 :(得分:3)
我认为您应该像这样创建网址:
http://myurl.com/Command?q=eiwjfsdlfjldkjfs
然后,在您的请求处理程序中,您将能够获得如下加密消息:
encrypted_string = self.request.get('q')
修改强>:
这是怎么做的:
1)创建网址:
import Crypto
from Crypto.Cipher import ARC4
obj=ARC4.new('stackoverflow')
plain = urllib.urlencode({'param1': 'v1', 'param2': 'v2'})
ciph = obj.encrypt(plain)
url = 'myurl.com/Command?%s' % urllib.urlencode({'q': ciph})
#url should be 'myurl.com/Command?q=%D4%2B%E5%FA%04rE.%1C.%81%0C%B6t%DCl%F8%84%EB'
2)解密它:
ciph = self.request.get('q')
obj=ARC4.new('stackoverflow')
plain = obj.decrypt(ciph)
get_data = cgi.parse_qs(plain) # {'param2': ['v2'], 'param1': ['v1']}