php openssl生成的rsa密钥给android和ios使用注意哪些问题?
有一个项目需要php通过openssl 生产rsa蜜月供android和ios使用。目前已经调试两天了,android那边使用密钥的时候一直有问题。
X509EncodedKeySpec expects DER-encoded data, not PEM-encoded
这个是android遇到的其中一个报错信息
下面是我的生成密钥的代码
// generate 2048-bit RSA key
$config = array(
'private_key_bits' => $length,
'private_key_type' => OPENSSL_KEYTYPE_RSA
);
$pkGenerate = openssl_pkey_new($config);
// get the private key
openssl_pkey_export($pkGenerate,$pkGeneratePrivate); // NOTE: second argument is passed by reference
// get the public key
$pkGenerateDetails = openssl_pkey_get_details($pkGenerate);
$pkGeneratePublic = $pkGenerateDetails['key'];
// free resources
openssl_pkey_free($pkGenerate);
// fetch/import public key from PEM formatted string
// remember $pkGeneratePrivate now is PEM formatted...
// this is an alternative method from the public retrieval in previous
$pkImport = openssl_pkey_get_private($pkGeneratePrivate); // import
$pkImportDetails = openssl_pkey_get_details($pkImport); // same as getting the public key in previous
$pkImportPublic = $pkImportDetails['key'];
openssl_pkey_free($pkImport); // clean up
return array('public'=>$pkGeneratePublic,'private'=>$pkGeneratePrivate);
之前对rsa加密没什么了解,今天是第一次使用,又遇到这个跨语言的问题。我自己是可以使用生成的密钥进行加密和解密的。
请了解相关问题的人指点一下。
这里有篇文章和我问的问题很相似,但是我对rsa,openssl不太熟悉,所以文章里面说的东西我也看不懂,供能看懂的人参考一下。
http://security.stackexchange.com/questions/15948/how-to-supply-openssl-generated-private-public-keys-to-ios-android-apps
相关阅读:
sublime text 能不能在css中提示html中定义的id和class?
mysql-proxy这种工具是属于中间件的范畴吗?
使用react-bootstrap组件报错
PHP程序员必须在linux下开发PHP程序吗?
如何封装常用的JS方法?
react native 怎么在类里的setState改变数据之后export
php的拓展如何编译一下给其他语言用?
vagrant up启动花了3小时还没启动完,这是作死的节奏么?
看了两篇关于优化程序的帖子,其中读到有关全局变量产生的疑惑
有没有基于chrome的开源的pc和手机端的浏览器?
JS调用OC方法,调转不同url,方法不执行
jQuery绑定下拉菜单onchange事件的问题,用到了闭包
如何查找Git服务器上的操作历史记录
在前端中 在浏览器中输入一个网址 从输入到页面显示出来 是个什么样的过程
如何让一个div永远出现在界面的最底部
这个js的转义哪里用错了呀?为什么没起作用
java中对象上转型和接口回调的意义是什么?
Object-C +函数和-函数有什么区别
为什么bootstrap的dropdown按f5刷新,会自动弹出菜单呢?
gcc的yum源怎么添加?