如何使PHP和IOS Iphone与加密一起使用?

时间:2011-06-08 10:01:36

标签: php iphone android encryption cryptography

我正在寻找使用加密技术与php服务器进行iphone应用程序交谈的好方法。 事实上,我也有一个Android应用程序,也希望与这个PHP服务器,加密。

我可以使用哪种解决方案适用于iphone,android和php?

我一直在寻找openssl,但在Android上它很不可能。

我想知道加密lib ...有人知道某事或有想法吗?

感谢。


但是如果你不想使用SSL呢?

好的,现在尝试更好地解释我们想要保护的内容。我们在android和iphone上都有一个软件正在使用我们的php服务器的一些web服务。 我们不希望任何人使用我们的网络服务。 我们可以使用SSL在软件和php服务器之间进行通信,但是例如,在android上很容易解组Android软件,然后访问好的代码...... 因此,我们希望找到如何更好地采用软件,如会谈加密......或任何其他想法......

3 个答案:

答案 0 :(得分:2)

只需通过SSL运行连接即可。

在iPhone上,我更喜欢使用ASIHTTPRequest,因为它可以轻松处理一些更为深奥的模式。

在Android上,see this previous SO thread

UPDATE;

不重新发明轮子的原因包括

  • SSL经过行业尝试和测试,原因何在 试着做别的什么?它是建立的 直接进入你想要的设备 使用,它的工作原理和基本 完美加密流量 从移动设备到后端 服务器。除非你是为了工作 外国政府,我真的不能 看到任何有效的案例,以避免 尝试过,经过测试,'它只能起作用'SSL。

  • 您可能不是加密技术 专家。它非常简单 真的搞砸了这种事情 滚动你自己的解决方案,即使 这涉及其他一些标准 组件。你更有可能 让它变得非常容易破解 而不是让它比SSL更好。

  • 出口合规问题 - 一次 你开始使用非加密 标准,你必须注册 与美国政府合作 加密导出。你在技术上 即使你正在使用,也必须这样做 SSL,但使用非标准的东西 你会突然发现你无法使用 任何更严格的豁免 导出许可和您的管理员 头痛会成倍增加。

答案 1 :(得分:1)

您所要求的是一种DRM形式,从根本上说是不可能的。您希望将代码放在用户设备上,但不要让它们检查或执行它,除非以批准的方式。由于他们实际拥有设备,因此无法阻止他们反汇编代码,检查通信或其他任何内容。您可以做的最好的事情就是混淆:在代码中嵌入一个密钥,使其难以提取,以及HMAC与该密钥的所有通信。

更好的方法是检查用户的激励 - 为什么他们想在您的应用程序之外使用您的API - 并构建您的API和/或商业模式,以便人们不用自己的方式使用它是一件好事,不是坏事。

答案 2 :(得分:0)

根据新信息,我会再次回答这个问题。

您所描述的是访问控制。这与加密几乎没有关系,除了通过SSL传递用户凭证是明智的; - )

基本上,您需要验证给定设备(用户)是否可以访问您的服务器。你可能会比亚马逊如何为他们的AWS Web服务实现这一点更糟糕,您可以在其中生成与每个请求一起传递的签名/令牌。令牌包含散列(未加密 - 您需要了解的很大差异)与发出请求的用户(设备)有关的详细信息,请求本身以及时间限制 - 因此您可以生成仅有效的令牌在短时间内。

要首先确定用户/设备访问服务的有效性,您可能需要某种基于电子邮件或基于SMS的注册程序,使您的服务器能够验证请求方是否有权创建未来请求。