1

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

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

  1. iOS端请求:
    NSString* theKey = "Kazam";
    NSString* theString =" lat=10.222455& lon=23.342224455& ID=3476rghfb3uf34f& timestamp=34325224433"
    参数=urlencode(encryptString(theString,theKey));

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

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

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

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

提前致谢!!

4

2 回答 2

2

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

另外,不要忘记,如果网络上有东西,任何人都可以发送请求,因此您可能应该使用服务器端身份验证,除非您完全确定可以在合法请求和欺诈请求之间破译。

于 2012-07-12T20:45:24.863 回答
1

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

于 2012-07-12T20:47:21.023 回答