使用加密++;在iphone sdk上使用应用程序引擎上的pycrypto
我正在尝试使用crypto++加密http请求,并在AppEngine服务器端使用pycrypto解密它们。使用Arc4加密,我可以在iphone端成功加密和解密,但当我尝试在app engine上解密时,结果是乱码。在客户端加密后的密文与我检查日志时在服务器上接收到的密文相同,因此如果它们在视觉上相同,为什么解密会失败 我想这可能与NSString的编码有关,因为我发现在解密之前需要在服务器端的密码上调用encode(),以避免decrypt()在尝试用ascii编码密码时失败。我有一个单独的帖子深入探讨了这一点。有人能提供一些建议吗 更新: 我发现,使用Crypto++在C中加密产生的密文与使用PyCrypto在python中加密产生的密文不同。我初始化钥匙时会不会有什么问题?我会这样做:使用加密++;在iphone sdk上使用应用程序引擎上的pycrypto,iphone,objective-c,google-app-engine,crypto++,pycrypto,Iphone,Objective C,Google App Engine,Crypto++,Pycrypto,我正在尝试使用crypto++加密http请求,并在AppEngine服务器端使用pycrypto解密它们。使用Arc4加密,我可以在iphone端成功加密和解密,但当我尝试在app engine上解密时,结果是乱码。在客户端加密后的密文与我检查日志时在服务器上接收到的密文相同,因此如果它们在视觉上相同,为什么解密会失败 我想这可能与NSString的编码有关,因为我发现在解密之前需要在服务器端的密码上调用encode(),以避免decrypt()在尝试用ascii编码密码时失败。我有一个单独的
ARC4::Encryption enc("a");
在C.和python中,我会:
testobj=ARC4.new('a')
C中的结果密码与python中的不同。我注意到,在C中,我可以为keylength传递第二个参数,我猜“a”的参数应该是1,这导致了一个不同于没有参数时的密码。尽管如此,%编码的结果仍然不同于python编码
我的init可能有什么特别的问题吗?我发现问题不在于crypto impl的init,而是错误地试图将加密的密码文本填充到NSString中,而NSString不能简单地获取没有特定编码的原始二进制数据。诀窍是在base64或base16中对数据进行编码,使其可读,然后在解密之前在服务器端使用unexlify Hi的可能副本,是的,它更像是一个附录。有人建议我写一篇与iphone sdk开发相关的帖子,因为我的问题可能与此有关。原始帖子中的问题已经解决,所以我在这里引用。@Alex:你的链接不是重复的。这是用另一种语言完成的,他想要的是Objective-C,而不是Java或其他任何代码。