2015-05-19 20 views
0

https://github.com/RNCryptor/RNCryptor混淆使用RNCryptor适用于iOS张贴到基于此链接基于PHP的服务器

我了解到,这是NSData的加密

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

基本方法和这里是我的代码对基于PHP的服务器执行POST请求。

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']; 

    ... 

?> 

我的问题是

如果整个参数

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

加密如何将我收到了PHP服务器的数据? ?

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

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

我不明白你在这里问什么。是的,最后一块代码很好,你试过了吗? –

+0

我问是否有一种方法来加密NSString只..所以PHP服务器可以使用$ _POST ['somedata']; –

+0

以上代码对整个NSData进行编码并发送到PHP –

回答

0

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

第二种方法,其中只有用户标识和密码加密,因为您发布的PHP代码可以按原样工作,所以出于简单考虑而更好。

虽然我不能说ObjC代码,但我并不流利。

您是否考虑过仅使用SSL来加密连接,以免您在应用程序中自己实现加密?

+1

谢谢! SSL是我应该使用的 –