Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP iOS AES加密_Php_Ios_Encryption_Aes - Fatal编程技术网

PHP iOS AES加密

PHP iOS AES加密,php,ios,encryption,aes,Php,Ios,Encryption,Aes,我在尝试使用AES加密在PHP和iOS应用程序之间通信时遇到了问题 到目前为止,我考虑了两种实现方法。首先是使用OpenSSL。 在iOS方面,我以一种模仿此处所示代码的方式实现了: 在PHP方面,我获取生成的密钥和IV(来自iPhone),并将其用作PHP openssl加密的输入 结果在输出方面有所不同 我亦曾考虑: 但这篇文章却吓坏了我 该项目与AES无关,它只是看起来像一个强大的加密算法,实现起来不会太难 我的基本问题是:实现一个好的加密算法的最简单方法是什么,可以轻松地用于iOS和PH

我在尝试使用AES加密在PHP和iOS应用程序之间通信时遇到了问题

到目前为止,我考虑了两种实现方法。首先是使用OpenSSL。
在iOS方面,我以一种模仿此处所示代码的方式实现了:

在PHP方面,我获取生成的密钥和IV(来自iPhone),并将其用作PHP openssl加密的输入

结果在输出方面有所不同

我亦曾考虑:

但这篇文章却吓坏了我

该项目与AES无关,它只是看起来像一个强大的加密算法,实现起来不会太难


我的基本问题是:实现一个好的加密算法的最简单方法是什么,可以轻松地用于iOS和PHP之间的通信?

如评论中所述,使用HTTPS可能最简单

我曾经设置过一个iPhone应用程序,它必须通过HTTPS与PHP后端进行通信,我花了很多时间试图找出iPhone为什么不接受加密连接

事实证明,它不起作用,因为我在服务器端使用了自签名证书。从证书颁发机构购买SSL证书解决了所有问题


在没有公司或扩展验证的情况下验证单个域名的SSL证书非常便宜,所以我建议您尝试一下

我刚刚完成了同样的项目。我使用了你在“也考虑过…”中引用的库

下面是一些使用php解密的示例代码:

$iv2 = '';
for($i=0;$i<16;$i++){
    $iv2 .= "\0";   
}
$plain_text_CBC = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted_text, MCRYPT_MODE_CBC, $iv2);
var_dump($plain_text_CBC);
$iv2='';

对于($i=0;$i作为一个直接的例子,我的开源项目“Techno-Tap”包含成功使用AES加密的PHP和iOS源代码,请随意查看


iOS上的加密在ScoreboardManager.m中完成(使用NSData+AES)而解密是在Scoreboard中的PHP端完成的。PHP

最简单的方法是通过HTTPS传输数据,因为iPhone和Web服务器肯定内置了对这一点的支持。你能在不透露太多信息的情况下解释项目的基本目的吗?这可能有助于解决你面临的问题,或者我们可能会能够共享其他路由,因为您没有像您提到的那样与AES绑定。我正在iOS设备和PHP后端之间传递敏感的客户端数据。我希望这些数据能够安全,不受数据包嗅探、伪造登录尝试等的影响。这听起来仍然是SSL或TLS的完美工作。当然,如果有人掌握了您的应用程序,什么都不会发生阻止他们尝试登录。你也可以给你的用户颁发证书并执行客户端身份验证,但是密钥将在设备上,并且可能会泄漏。我想我听说iOS设备上有密钥库。我喜欢使用https的想法,但是,我过去在尝试从usi获取数据时遇到了问题在iPhone上使用ng https。服务器与手机的握手似乎有问题。出现了一个我无法在手机端传递的真实性挑战。其他人对此有过问题吗?使用IV的全部意义在于它对每一条数据都是唯一的:它不是秘密,你可以将它附加到密文中。使用同样的IV对于所有的加密都是有效的,就像不使用IV一样。请考虑检查我的声明并从答案中编辑这个错误信息。使用IV初始化为零是不安全的,因为已知的攻击和漏洞存在,例如:cookies窃取和特权升级(MART)。.谢谢你的评论!非常感谢!!一周以来一直在搜索这个