English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل PHP الأساسي

دليل PHP المتقدم

PHP & MySQL

دليل PHP

استخدام دالة PHP openssl_pkey_export_to_file مع أمثلة

دليل الوظائف OpenSSL PHP

يستخدم دالة openssl_pkey_export_to_file لتحويل المفتاح إلى ملف.

التعريف والاستخدام

openssl_pkey_export_to_fileتقوم الدالة بتحويل المفتاح إلى ملف.

يحفظ دالة openssl_pkey_export_to_file المفتاح بالتنسيق PEM، حيث يمثل PEM Privacy-Enhanced Mail، ويستخدم لتحفظ المفاتيح المشفرة والشهادات.

القواعد النحوية

openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] ) : bool

الإعداد

الترتيبالإعدادالوصف
1

key

المفتاح الذي سيتم استخدامه لتصديره إلى ملف.

2

outfilename

مسار الملف المحدد لتخزين ملف .pem.

3

passphrase

الرقم السري الذي يمكن استخدامه لحماية الملف.

4

configargs

الوحدة configargs هي التفاصيل التي يجب تقديمها للوظيفة لإنشاء مفتاح خاص/عام، وفقًا لما يلي.

تفاصيل التكوين

بشكل افتراضي، يستخدم openssl_pkey_new() تفاصيل التكوين الموجودة في openssl.cnf. ولكن يمكن تغييرها باستخدام configargs. تفاصيل التكوين كما يلي:

configargsالنوعالمفتاح المستخدم في openssl.confالوصف
digest_algالسلسلةdefault_mdالطريقة السريعة التي تحصل عليها من openssl_get_md_methods().
x509_extensionsالسلسلةx509_extensionsالامتداد المستخدم لإنشاء التوقيع الرقمي x509.
req_extensionsالسلسلةreq_extensionsالامتداد المستخدم لإنشاء CSR.
private_key_bitsعددdefault_bitsتحديد عدد الأرقام التي سيتم استخدامها لإنشاء المفتاح الخاص.
private_key_typeعددلا شيءنوع المفتاح الخاص الذي سيتم إنشاؤه. يمكن أن يكون ذلك OPENSSL_KEYTYPE_DSA، OPENSSL_KEYTYPE_DH، OPENSSL_KEYTYPE_RSA أو OPENSSL_KEYTYPE_EC من بينهم. القيمة الافتراضية هي OPENSSL_KEYTYPE_RSA.
encrypt_keyقيمة منطقيةencrypt_keyهل تم تشفير المفتاح المستورد؟
encrypt_key_cipherعددلا شيءالرقم السري الثابت، مثل OPENSSL_CIPHER_RC2_40 (عدد)، OPENSSL_CIPHER_RC2_128 (عدد)، OPENSSL_CIPHER_RC2_64 (عدد)، OPENSSL_CIPHER_DES (عدد)، OPENSSL_CIPHER_3DES (عدد) وما إلى ذلك.
اسم المنحنيةالسلسلةلا شيءأحد أسماء المنحنيات التي يعودها دالة openssl_get_curve_names().
التكوينالسلسلةغير متاحيمكنك تغيير التكوين في openssl.conf حسب الحاجة، و تقديم مسارها هنا.

قيمةإعادةالإدخال

إذاكانPHPopenssl_pkey_export_to_file()نجح،فسيأخذبالمكتبةبالمعادلةtrue،وإذالمنجحفسيأخذبالمكتبةبالمعادلةfalse.

إصدارPHP

هذاالدالةسوفتعملمنالبدايةبالبنياتالبرمجيةPHPإلىأعلىمن5.0.0.

مثال1

عمليةopenssl_pkey_export_to_file()

؟php
        //إنشاء مفتاح خاص
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/keytest.pem');
?>

تفاصيلإضافيةتمتثمثبتفيملفkeytest.pemكمايلي-

-----بداية المفتاحِِالخاص-----
مئيئIEغIBADANبكغقيG9و0بAEفاسCBكغوAgEآوIBAQDaقNK97آ+mL9Xو
إIDت3رز9يئفورLcدإفسDa9جسQByJVBdRتاNل6نfg91/لوفكو8زAeG8سرد292جسيك
9مگBهكپMCHv/قهWجA4إيدPLدوWHCbYفجF/LHموز022/فقتنQtFووس992/كلهZدو6
كبDلU/H2لمبنCوطرسقHلقيQ7بزBgC5و5سW0ت3A03PSqxQTIFبOHi1يكس1Il5جH/H11
6وكسدكوگAWسسهRpdوVدسCy6وJ3ركبر1پر7CDكHSS49مAvج4ه6كس+جي12لرتيچR
زتييLILzإG7ا1ن0بPGAI1بQسيVHXNيپUكAYFn221گKRuB+9SQvC3VKبNXي8Oc7ن9
هإهأD8س3آغMBAAECggEBAKزEU68وغ7زلcvزكسجسسکNتد4كب5كس0رخلزPپرWكO131
تسسلم57إكسلوMcMه6P3رff5دقكن9هوVRك9للإيF1س/xلف7CSGزJ2+وئهHsBVgOاكس
ئيودنونVsFG2تيرو3يYphقAwwدووBNFبلس8ق084WزA3وآج6سVgAi6مؤارإتني3Xفروإب
يروي4ي1ي1SB92كس4ي85تZ/Pكوموماومف0دجKQئوهاز7ف7جلوJRفدشNENRبكدل65ن5
ج8هي7وكسMSاودپJ3زZJMمغNفك9نالنتSZفوسHGMز/ووغ8هV6+هزCوqrMكR15پزي1
هقفVسزيو1يووJvlجoxإينجJOقج2س6لبلسوببBR8دووQيكسإيCgYEA+8RKXcw0U3VU8زجO
NTFzSDEtFYKZ5Bg4IPaYSTSo/ojiL3VrLeocRq3/2zdeCw8wx9eNZbcBW93lWVxK
q2G0X4XgonorEEONBvL9aE/D7wBCMYPWDXd/KQVZW8CPwcy10g2oIi3SqbcTQ/gT
fcmcHAQD2wVgo9XBlg24ESAP01MCgYEA3lYGasOvDweca5GCiP4m1oOH605haIUU
f5CDWXbZ6QjcoUQQB0CoDtTl3QpBd3KGbd+PbqU8xb44+LhrVIsjUyZs6k+eLACe
Dufzq00mIRSl/TZ0R3q17lAMmxId9QramDScpmqqqXonpOpdEoonThynhLyANgX3
eYGLXeqaII0CgYBPVi/JFwx2MEcwy+1xPcACQ9zdJmawRiGJ4atjhkCq1R/RrMK1
mUyHyVUTE4ODIKpSj05zexPmiyo22qp9DzDz2RBMowrm+SJ7yh6ovFoV+pLhX5YY
cEuV9aWPEEM84vF42+zbuGzmJlbf2FDsFpgnC+zbG/q0Jiv2ySPz4ZKbGQKBgQDM
ek9ih1+LshNAts1Xkm5DoSoy1Z4uUx48B7tVX0If2N+YjRE0qlklctWIiXMWGMTb
bdzrBJq0vjKFRI6pbWFqio9mmxy8GUFEMjzekZB8ohHao+cjCg8iAorlXy8f+wB5
NQHQ547XWRn2yPgaIebuJtpF8Fr11Fz6aZK0KBvhzQKBgGRwuxq6IhIROupoDRpU
RHuqICeQQYcf7Cfk7+ZyYJnA1fbOowj4Q5zvbWa6N2Ygyq2KIl0P5YL4Atb7aRKS
e6ol8lIKZM9ysbS+wR0OhhTJs/9CqpgvDbYNQFiaVZtGRpSNCxHkhn0cAR7lzK4P
ROQC7p9zXJhAmzE8/hTD9eaH
-----انتهاء المفتاح الخاص-----

مثال2

الحصول على المفتاح من ملف .pem-

؟php
        //إنشاء مفتاح خاص
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/keytest.pem');
	//استخدام ملف .pem الذي يحتوي على المفتاح الخاص.
	$testprivatekey = openssl_get_privatekey(file_get_contents('C:/xampp/htdocs/modules/openssl/keytest.pem'));
	if ($testprivatekey === false) {
		var_dump(openssl_error_string());
	} else {
		//var_dump($testprivatekey);
		$key_details = openssl_pkey_get_details($testprivatekey);
		print_r($key_details["key"]);	
	}
?>

تفاصيل الحفظ في ملف test-csr1.pem كما يلي-

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbGAblUCP6sZvbi2JM4G
PcLmKK9flGQq6EE+yvMWrEUnIPGOLJUEB06dE8inIMQTYDmdmjn7HgUAlIDaViw+
aSv3XBZJqBTm7xtW4488oKuCzdBuJbnomtGttFWOk4cjb8kG+Kza6v0AB+P0eUru
cPkwnJF4F1pGY1pszSMsL3/s7OcIzjiKUKu5vHJxUWO7baVovq+gv9+O24Pd0GhB
t6RC/pgK/42YqZ2YW5V+JiuCFFkTVPusviunAOLLpDwoyPIROvXdML2TKopiowOd
nmOkNRrW81duRF8Z4dcn7jnf2sKExpLBgAtcV05OufZIv3VeeTD0ISbCJhn0zmx/
SQIDAQAB
-----END PUBLIC KEY-----

دليل الوظائف OpenSSL PHP