2015-05-19 30 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是我應該使用的 –