gpt4 book ai didi

php - 如何安全地将密码从 iOS 应用程序发布到 PHP 服务器?

转载 作者:搜寻专家 更新时间:2023-10-30 20:15:58 25 4
gpt4 key购买 nike

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

情况是:

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

我确实从 xcode 向 php 发送了类似这样的 POST:

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];

但这安全吗?我觉得以纯文本形式发送密码非常危险。

如果是这样,谁能告诉我如何安全地发布密码?

最佳答案

您可以简单地加密您的密码并在服务器端解密。

你也可以看到这个链接这个库做你正在寻找的一样https://github.com/RNCryptor/RNCryptor .

或者

这里是AES256加密和解密的示例代码。

从这里下载 AES256 加密类:https://gist.github.com/838614 .

Objective-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/>";

关于php - 如何安全地将密码从 iOS 应用程序发布到 PHP 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30321792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com