Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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脚本生成的公钥在objective-c中加密数据_Php_Cocoa_Public Key Encryption - Fatal编程技术网

如何使用php脚本生成的公钥在objective-c中加密数据

如何使用php脚本生成的公钥在objective-c中加密数据,php,cocoa,public-key-encryption,Php,Cocoa,Public Key Encryption,我环顾四周,发现有关Mac OS X加密的信息很少。似乎OpenSSL支持在较新版本的Mac OS X中不受欢迎。我需要能够支持10.5及以上版本。我的问题是: 我在我们的授权服务器上使用php生成了一个公钥和私钥对(代码如下所示) base64编码的私钥存储在我们其中一台服务器上的安全位置,base64编码的公钥被写入文件供用户下载。该文件加载到MacOS X的桌面应用程序中,该应用程序使用cocoa编写,base64对公钥进行解码。直到这一步是好的。然而,我想用公钥加密数据并将其发送到我们的

我环顾四周,发现有关Mac OS X加密的信息很少。似乎OpenSSL支持在较新版本的Mac OS X中不受欢迎。我需要能够支持10.5及以上版本。我的问题是:

我在我们的授权服务器上使用php生成了一个公钥和私钥对(代码如下所示)


base64编码的私钥存储在我们其中一台服务器上的安全位置,base64编码的公钥被写入文件供用户下载。该文件加载到MacOS X的桌面应用程序中,该应用程序使用cocoa编写,base64对公钥进行解码。直到这一步是好的。然而,我想用公钥加密数据并将其发送到我们的许可证服务器。有人知道我如何使用此公钥加密cocoa中的数据,以及什么是“最佳”实践方法吗?任何例子或提示都将不胜感激

Mac上不推荐使用的不是太多OpenSSL,而是OS X提供的OpenSSL库。没有任何东西可以阻止您编译自己的OpenSSL并通过静态链接在应用程序中使用它:

尽管OpenSSL在开源社区中很常用, OpenSSL不提供不同版本的稳定API。对于 因此,尽管OSX提供了OpenSSL库,但OpenSSL OS X中的库已被弃用,而且从未提供过OpenSSL 作为iOS的一部分。应用程序对OSX OpenSSL库的使用受到强烈欢迎 气馁

如果你的应用程序依赖于OpenSSL,你应该自己编译OpenSSL 并将已知版本的OpenSSL静态链接到您的应用程序中。这个用途 在OSX和iOS上都可以使用OpenSSL。但是,除非你是 试图保持与现有开放源代码的源代码兼容性 项目中,通常应使用不同的API

建议使用通用加密和安全转换 用于一般加密。CFN网络和安全传输是关键 安全通信的推荐替代方案

换句话说:在你的OSX应用程序中使用OpenSSL仍然很好——只是不再依赖捆绑的OpenSSL。或者,您可以使用OS X”:它能够处理您似乎也在做的X.509公钥加密


来源:

谢谢你,这确实帮助我澄清了问题。我将研究安全框架。
$dn = array(configs....);
$privkey = openssl_pkey_new();

$csr = openssl_csr_new($dn, $privkey);

$sscert = openssl_csr_sign($csr, null, $privkey, $term);

openssl_x509_export($sscert, $publickey);
openssl_pkey_export($privkey, $privatekey, "somepassphrase");

//base64 encode the keys
$privatekey = base64_encode($privatekey);
$publickey = base64_encode($publickey);