有一个项目需要php通过openssl 生产rsa蜜月供android和ios使用。目前已经调试两天了,android那边使用密钥的时候一直有问题。
<code> X509EncodedKeySpec expects DER-encoded data, not PEM-encoded </code>
这个是android遇到的其中一个报错信息
下面是我的生成密钥的代码
<code> // 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); </code>
之前对rsa加密没什么了解,今天是第一次使用,又遇到这个跨语言的问题。我自己是可以使用生成的密钥进行加密和解密的。
请了解相关问题的人指点一下。
这里有篇文章和我问的问题很相似,但是我对rsa,openssl不太熟悉,所以文章里面说的东西我也看不懂,供能看懂的人参考一下。
http://security.stackexchange.com/questions/15948/how-to-supply-openssl-generated-private-public-keys-to-ios-android-apps
回复内容:
有一个项目需要php通过openssl 生产rsa蜜月供android和ios使用。目前已经调试两天了,android那边使用密钥的时候一直有问题。
<code> X509EncodedKeySpec expects DER-encoded data, not PEM-encoded </code>
这个是android遇到的其中一个报错信息
下面是我的生成密钥的代码
<code> // 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); </code>
之前对rsa加密没什么了解,今天是第一次使用,又遇到这个跨语言的问题。我自己是可以使用生成的密钥进行加密和解密的。
请了解相关问题的人指点一下。
这里有篇文章和我问的问题很相似,但是我对rsa,openssl不太熟悉,所以文章里面说的东西我也看不懂,供能看懂的人参考一下。
http://security.stackexchange.com/questions/15948/how-to-supply-openssl-generated-private-public-keys-to-ios-android-apps

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)

phpisusedforsenderemailsduetoitsbuilt-inmail()函数andsupportiveLibrariesLikePhpMailerandSwiftMailer.1)usethemail()functionforbasicemails,butithasimails.2)butithasimimitations.2)

PHP性能瓶颈可以通过以下步骤解决:1)使用Xdebug或Blackfire进行性能分析,找出问题所在;2)优化数据库查询并使用缓存,如APCu;3)使用array_filter等高效函数优化数组操作;4)配置OPcache进行字节码缓存;5)优化前端,如减少HTTP请求和优化图片;6)持续监控和优化性能。通过这些方法,可以显着提升PHP应用的性能。

依赖性注射(DI)InphpisadesignPatternthatManages和ReducesClassDeptions,增强量产生性,可验证性和Maintainability.itallowspasspassingDepentenciesLikEdenceSeconnectionSeconnectionStoclasseconnectionStoclasseSasasasasareTers,interitationApertatingAeseritatingEaseTestingEasingEaseTeStingEasingAndScalability。

cachingimprovesphpermenceByStorcyResultSofComputationsorqucrouctationsorquctationsorquickretrieval,reducingServerLoadAndenHancingResponsetimes.feftectivestrategiesinclude:1)opcodecaching,whereStoresCompiledSinmememorytssinmemorytoskipcompliation; 2)datacaching datacachingsingMemccachingmcachingmcachings


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。