如何将iOS应用程序的密码安全地发布到PHP服务器?
我对网络安全几乎一无所知,我遇到了这个问题 情况是: 用户必须从iOS应用程序登录到基于PHP的服务器 我从xcode向php发送了如下内容:如何将iOS应用程序的密码安全地发布到PHP服务器?,php,ios,objective-c,substring,Php,Ios,Objective C,Substring,我对网络安全几乎一无所知,我遇到了这个问题 情况是: 用户必须从iOS应用程序登录到基于PHP的服务器 我从xcode向php发送了如下内容: NSString *parameter = [NSString stringWithFormat:@"userid=%@&password=%@",usernameVar, passwordVar]; NSData *parameterData = [parameter dataUsingEncoding:NSASCIIStringEncodi
NSString *parameter = [NSString stringWithFormat:@"userid=%@&password=%@",usernameVar, passwordVar];
NSData *parameterData = [parameter dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
url = [NSURL URLWithString: @"http://mywebsite.com/server.php"];
request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPBody:parameterData];
但这安全吗?我觉得用明文发送密码是非常危险的
如果是这样的话,有人能告诉我如何安全地发布密码吗?在HTTP头中传递机密数据,这将是安全的。
您还可以将密码转换为MD5格式,这样它就不会以简单的字母数字字符串读取 您只需在服务器端加密密码并解密即可 你也可以看到这个链接,这个库和你正在寻找的一样 或 下面是AES256加密和解密的示例代码 从以下位置下载AES256加密类: 目标C代码:
NSString *key = @"a16byteslongkey!";
NSString *plaintext = @"iphone";
NSString *ciphertext = [plaintext AES256EncryptWithKey: key];
NSLog(@"ciphertext: %@", ciphertext);
在api的链接中发送加密密码。并在服务器端解密密码。或者只需存储加密密码,也可以匹配加密密码
PHP代码:
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "a16byteslongkey!";
$plaintext = "iphone";
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_ECB, $iv);
$ciphertext = base64_encode($ciphertext);
echo "ciphertext: ".$ciphertext."<br/>";
$iv_size=mcrypt_get_iv_size(mcrypt_RIJNDAEL_128,mcrypt_MODE_ECB);
$iv=mcrypt\u create\u iv($iv\u大小,mcrypt\u兰德);
$key=“a16byteslongkey!”;
$plaintext=“iphone”;
$ciphertext=mcrypt_encrypt(mcrypt_RIJNDAEL_128,$key,$plaintext,mcrypt_MODE_ECB,$iv);
$ciphertext=base64_编码($ciphertext);
回显“密文:.$ciphertext.”
;
@JoonP请用NSUTF8StringEncoding替换NSASCIIStringEncoding。您可以使用PHP后端的共享哈希对密码进行加密。然后,您可以在HTTP头上发送密码,只需通过HTTPS发布数据即可。