寻找一种在PHP和iOS之间加密/解密网络数据的方法

时间:2012-07-12 20:30:07

标签: php ios encryption

我想在我的服务器和客户端的iOS应用程序之间使用共享密钥(可能会在每个版本的应用程序中更改),以便可以加密数据并对其进行解密。 至少我需要这个在iOS端工作,加密它将要发送的数据。 我不希望机器人或恶意用户扫描我的数据库。我需要加密位置,时间戳和一些数据。

原始字符串可能是100-200个字符长。加密前。
使用SSL将有助于规避“中间人”。但我需要发送加密的URL。类似的东西:

  1. iOS端请求:
    NSString * theKey =“Kazam”;
    NSString * theString =“lat=10.222455& lon=23.342224455& ID=3476rghfb3uf34f& timestamp=34325224433

    PARAM =进行urlencode(encryptString(theString,theKey));

    https://www.mydomain.com/page1.php?的 PARAM = sdhcy39h923498ufdd

  2. 服务器接收参数并对其进行解密 PHP服务器:
    $ theKey =“Kazam”;
    $解密= decryptString($ GET [ 'PARAM'],$ theKey);

  3. 然后将数据返回给客户端。

  4. 再次,我不介意从服务器发送的数据是否会被加密。 毕竟,客户端是可以扫描数据库的人。

    提前致谢!!

2 个答案:

答案 0 :(得分:2)

请勿使用网址传递参数。也就是说,使用POST请求而不是GET请求。它就这么简单!通过HTTPS发送POST请求非常安全。 更新:是的,GET请求是通过HTTPS加密的。但对于一些(可能没有根据的)理由,POST对我来说似乎更安全。我不喜欢变量或密码可以存储在浏览器缓存或服务器日志中的想法。此外,黑客更容易与GET建立恶意链接。

此外,请不要忘记,如果网络上有内容,任何人都可以发送请求,因此您应该使用服务器端身份验证,除非您完全确定可以在合法请求和欺诈性请求之间进行解密。 / p>

答案 1 :(得分:1)

使用SSL(HTTPS)时整个HTTP请求都已加密,因此您可以像以前一样在URL中发送数据。