如何将iOS应用程序的密码安全地发布到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

我对网络安全几乎一无所知,我遇到了这个问题

情况是:

用户必须从iOS应用程序登录到基于PHP的服务器

我从xcode向php发送了如下内容:

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发布数据即可。