基于此链接: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来加密连接,这样您就不必在应用程序中自己实现加密了?