首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iphone sdk上使用crypto++,在应用引擎上使用pycrypto

在iphone sdk上使用crypto++,在应用引擎上使用pycrypto
EN

Stack Overflow用户
提问于 2010-05-10 04:05:11
回答 1查看 634关注 0票数 1

我正在尝试使用crypto++加密http请求,并在应用引擎服务器端使用pycrypto解密它们。使用Arc4加密,我可以在iPhone端成功加密和解密,但当我在应用程序引擎上尝试解密时,结果是乱码。在客户端加密后的密文与我检查日志时在服务器端收到的密文相同,所以如果它们在视觉上是相同的,为什么解密会失败?

我想这可能与NSString的编码有关,因为我发现在解密之前,我需要在服务器端的密码上调用encode(),以避免在尝试以ascii编码密码时出现decrypt()失败。我有一个单独的帖子,对此进行了一些深入研究。有人能给点建议吗?

crypto++ / pycrypto with google app engine

更新:我发现用Crypto++用C加密得到的密文和用PyCrypto用python加密得到的密文不一样。会不会是我在初始化密钥时做错了什么?我做了一些类似的事情:

代码语言:javascript
复制
    ARC4::Encryption enc("a");

在C中,在python中,我这样做:

代码语言:javascript
复制
testobj=ARC4.new('a')

在C中,%编码的结果密码与在python中不同。我注意到,在C中,我可以传递第二个键长参数,我猜想"a“应该是1,这导致了与没有参数时不同的密码。但是,%编码的结果仍然不同于python编码。

我的init看起来有什么特别不对劲吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-12 11:32:28

我发现问题不在于这两种加密执行的初始化,而在于错误地试图将加密的密文填充到NSString中,它不能简单地接受没有特定编码的原始二进制数据。诀窍是用base64或base16对数据进行编码,使其可读,然后在解密之前在服务器端使用unhexlify。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2798998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档