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


Looking for a way to encrypt/decrypt network data between PHP and iOS

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

原始字符串的长度可能为100-200个字符。在加密之前
使用SSL将有助于避开"中间人"。但我需要发送加密的URL。类似于:

  1. iOS端请求:
    NSString*theKey="Kazam"
    NSString*String="lat=10.222455&lon=23.342224455&ID=3476rghfb3uf34f&timestamp=34325224433"
    param=urlencode(encryptString(字符串,密钥));

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

  2. 服务器接收param并对其进行解密。
    PHP服务器:
    $theKey="Kazam"
    $decrypted=decryptString($GET['param'],$theKey);

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

再说一遍,我不介意从服务器发送的数据不会被加密。毕竟,客户端是可能扫描数据库的人。

提前感谢!!

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

此外,别忘了,如果网络上有什么东西,任何人都可以发送请求,所以你可能应该使用服务器端身份验证,除非你完全确定你可以在合法请求和欺诈请求之间进行解密。

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