对基于 iOS 到 post 到 PHP 的服务器使用 RNCryptor 感到困惑
confusion on using RNCryptor for iOS to post to PHP-based server
基于此link: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];
已加密??
有没有办法只加密 NSString,并像这样将它们附加到参数?
NSString *parameter = [NSString stringWithFormat:
@"userid=%@&password=%@",ENCRYPTED_USRID, ENCRYPTED_PWD];
如果你加密了整个 POST 字符串 PHP 将不知道如何将数据解析到 $_POST
超全局数组中。您可能必须从原始输入流 php://input
获取原始请求,解密它,然后自己解析它。
为了简单起见,仅加密用户 ID 和密码 值 的第二种方法更可取,因为您发布的 PHP 代码将按原样工作.
虽然我不会说 ObjC 代码,但我并不流利。
您是否考虑过只使用 SSL 来加密连接,这样您就不必费心在应用程序中自己实施加密?
基于此link: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];
已加密??
有没有办法只加密 NSString,并像这样将它们附加到参数?
NSString *parameter = [NSString stringWithFormat:
@"userid=%@&password=%@",ENCRYPTED_USRID, ENCRYPTED_PWD];
如果你加密了整个 POST 字符串 PHP 将不知道如何将数据解析到 $_POST
超全局数组中。您可能必须从原始输入流 php://input
获取原始请求,解密它,然后自己解析它。
为了简单起见,仅加密用户 ID 和密码 值 的第二种方法更可取,因为您发布的 PHP 代码将按原样工作.
虽然我不会说 ObjC 代码,但我并不流利。
您是否考虑过只使用 SSL 来加密连接,这样您就不必费心在应用程序中自己实施加密?