混淆使用RNCryptor iOS发布到基于php的服务器


confusion on using RNCryptor for iOS to post to PHP-based server

基于此链接:https://github.com/RNCryptor/RNCryptor

我学过这是一个加密NSData的基本方法

NSData *data = [@"Data" dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSData *encryptedData = [RNEncryptor encryptData:data
                                    withSettings:kRNCryptorAES256Settings
                                        password:aPassword
                                           error:&error];

这是我的代码做POST请求到基于php的服务器。

NSString *parameter = [NSString stringWithFormat:@"userid=%@&password=%@",useridStr, passwordStr];
NSData *parameterData = [parameter dataUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString: @"http://mywebiste.com/server.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPBody:parameterData];
[request setHTTPMethod:@"POST"];
[request addValue: @"application/x-www-form-urlencoded; charset=utf-8"  forHTTPHeaderField:@"Content-Type"];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];

在PHP服务器中:

 <?php
    $userid = $_POST['userid'];
    $password = $_POST['password'];
    ...
 ?>

我的问题是

如果整个参数

, PHP服务器将如何接收数据?
NSString *parameter = [NSString stringWithFormat:
                         @"userid=%@&password=%@",useridStr, passwordStr];
加密是

? ?

是否有一种方法加密ONLY NSString,并像这样将它们附加到参数上?

NSString *parameter = [NSString stringWithFormat:  
                         @"userid=%@&password=%@",ENCRYPTED_USRID, ENCRYPTED_PWD];

如果您加密了整个POST字符串PHP将不知道如何将数据解析为$_POST超全局数组。您可能必须从原始输入流php://input获取原始请求,解密它,然后自己解析它。

第二种方法只加密用户id和密码,为了简单起见,这种方法更好,因为您发布的PHP代码将按原样工作。

我不能说ObjC代码,虽然,我不是很流利。

您是否考虑过仅仅使用SSL来加密连接,这样您就不必在应用程序中自己实现加密了?