【问题标题】:crypto++ / pycrypto with google app engine带有谷歌应用引擎的crypto++ / pycrypto
【发布时间】:2010-07-22 05:59:37
【问题描述】:

我正在使用 crypto++ 向应用引擎发送 AES 加密的 http 请求,并计划在那里解密它们。我的计划是加密“?”之后的部分。所以它是这样的:

http://myurl.com/Command?eiwjfsdlfjldkjfs 加密时。但是,我一直在弄清楚如何在另一端解密它,并且仍然是用户 get() 在响应中获取参数。有人可以建议我是否采取了错误的方法?我应该解密而不是使用 get() 而是我自己的解析器吗?

【问题讨论】:

    标签: google-app-engine encryption


    【解决方案1】:

    我认为你应该这样创建 URL:

    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']}
    

    【讨论】:

    • 那么,如果我有多个参数,那么我应该分别加密和解密每个参数吗?我考虑过这一点,但仍然不确定这是做事的标准方式(如果有标准方式)。这不只是暴露参数名称吗?
    • 我已经编辑了我的答案以解释如何一次加密所有参数。希望对你有帮助
    • 谢谢,您的编辑非常有帮助。但是,我的解密失败了。我遇到了这个错误:'ascii' codec can't encode characters in position 0-7 读完后,我发现我需要在解密之前调用密码上的 encode(),从而消除了该错误。我使用'utf-8',因为当我从我的 NSString url 获取 CString 时的编码是“NSUTF8StringEncoding”。当我在示例字符串上尝试此操作时,我在普通 var 中得到一团糟的结果。知道为什么吗?
    • 对不起,我对 iPhone SDK 一无所知。也许您应该为此创建另一个问题:)
    • 观察力不错。我完全忽略了我没有提到将 iphone sdk 用于加密部分。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-07-19
    • 2015-05-16
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多