有一个项目需要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

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

TooptimizePHPapplicationsforperformance,usecaching,databaseoptimization,opcodecaching,andserverconfiguration.1)ImplementcachingwithAPCutoreducedatafetchtimes.2)Optimizedatabasesbyindexing,balancingreadandwriteoperations.3)EnableOPcachetoavoidrecompil

DependencyinjectioninPHPisadesignpatternthatenhancesflexibility,testability,andmaintainabilitybyprovidingexternaldependenciestoclasses.Itallowsforloosecoupling,easiertestingthroughmocking,andmodulardesign,butrequirescarefulstructuringtoavoidover-inje

PHP performance optimization can be achieved through the following steps: 1) use require_once or include_once on the top of the script to reduce the number of file loads; 2) use preprocessing statements and batch processing to reduce the number of database queries; 3) configure OPcache for opcode cache; 4) enable and configure PHP-FPM optimization process management; 5) use CDN to distribute static resources; 6) use Xdebug or Blackfire for code performance analysis; 7) select efficient data structures such as arrays; 8) write modular code for optimization execution.

OpcodecachingsignificantlyimprovesPHPperformancebycachingcompiledcode,reducingserverloadandresponsetimes.1)ItstorescompiledPHPcodeinmemory,bypassingparsingandcompiling.2)UseOPcachebysettingparametersinphp.ini,likememoryconsumptionandscriptlimits.3)Ad


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver CS6
Visual web development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
