- PHP 教程
- PHP - 首頁
- PHP - 路線圖
- PHP - 簡介
- PHP - 安裝
- PHP - 歷史
- PHP - 特性
- PHP - 語法
- PHP - Hello World
- PHP - 註釋
- PHP - 變數
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 變數
- PHP - 常量
- PHP - 魔術常量
- PHP - 資料型別
- PHP - 型別轉換
- PHP - 型別混合
- PHP - 字串
- PHP - 布林值
- PHP - 整數
- PHP - 檔案與 I/O
- PHP - 數學函式
- PHP - Heredoc 和 Nowdoc
- PHP - 複合型別
- PHP - 檔案包含
- PHP - 日期和時間
- PHP - 標量型別宣告
- PHP - 返回型別宣告
- PHP 運算子
- PHP - 運算子
- PHP - 算術運算子
- PHP - 比較運算子
- PHP - 邏輯運算子
- PHP - 賦值運算子
- PHP - 字串運算子
- PHP - 陣列運算子
- PHP - 條件運算子
- PHP - 展開運算子
- PHP - 空值合併運算子
- PHP - 鍵值比較運算子
- PHP 控制語句
- PHP - 決策制定
- PHP - If…Else 語句
- PHP - Switch 語句
- PHP - 迴圈型別
- PHP - For 迴圈
- PHP - Foreach 迴圈
- PHP - While 迴圈
- PHP - Do…While 迴圈
- PHP - Break 語句
- PHP - Continue 語句
- PHP 函式
- PHP - 函式
- PHP - 函式引數
- PHP - 按值傳遞
- PHP - 按引用傳遞
- PHP - 預設引數
- PHP - 具名引數
- PHP - 可變引數
- PHP - 返回值
- PHP - 傳遞函式
- PHP - 遞迴函式
- PHP - 型別提示
- PHP - 變數作用域
- PHP - 嚴格型別
- PHP - 匿名函式
- PHP - 箭頭函式
- PHP - 可變函式
- PHP - 區域性變數
- PHP - 全域性變數
- PHP 超全域性變數
- PHP - 超全域性變數
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 檔案處理
- PHP - 檔案處理
- PHP - 開啟檔案
- PHP - 讀取檔案
- PHP - 寫入檔案
- PHP - 檔案是否存在
- PHP - 下載檔案
- PHP - 複製檔案
- PHP - 追加檔案
- PHP - 刪除檔案
- PHP - 處理 CSV 檔案
- PHP - 檔案許可權
- PHP - 建立目錄
- PHP - 列出檔案
- 面向物件 PHP
- PHP - 面向物件程式設計
- PHP - 類和物件
- PHP - 建構函式和解構函式
- PHP - 訪問修飾符
- PHP - 繼承
- PHP - 類常量
- PHP - 抽象類
- PHP - 介面
- PHP - 特性
- PHP - 靜態方法
- PHP - 靜態屬性
- PHP - 名稱空間
- PHP - 物件迭代
- PHP - 封裝
- PHP - Final 關鍵字
- PHP - 過載
- PHP - 克隆物件
- PHP - 匿名類
- PHP Web 開發
- PHP - Web 概念
- PHP - 表單處理
- PHP - 表單驗證
- PHP - 表單郵件/URL
- PHP - 完整表單
- PHP - 檔案包含
- PHP - GET 和 POST
- PHP - 檔案上傳
- PHP - Cookies
- PHP - Sessions
- PHP - Session 選項
- PHP - 傳送郵件
- PHP - 淨化輸入
- PHP - Post-Redirect-Get (PRG)
- PHP - 快閃記憶體訊息
- PHP 高階
- PHP - MySQL
- PHP.INI 檔案配置
- PHP - 陣列解構
- PHP - 編碼規範
- PHP - 正則表示式
- PHP - 錯誤處理
- PHP - Try…Catch
- PHP - Bug 除錯
- PHP - 針對 C 開發人員
- PHP - 針對 PERL 開發人員
- PHP - 框架
- PHP - Core PHP 與框架
- PHP - 設計模式
- PHP - 過濾器
- PHP - JSON
- PHP - 異常
- PHP - 特殊型別
- PHP - 雜湊
- PHP - 加密
- PHP - is_null() 函式
- PHP - 系統呼叫
- PHP - HTTP 認證
- PHP - 交換變數
- PHP - Closure::call()
- PHP - 過濾後的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 期望
- PHP - Use 語句
- PHP - 整數除法
- PHP - 已棄用的特性
- PHP - 已刪除的擴充套件和 SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 程序
- PHP - PDO 擴充套件
- PHP - 內建函式
- PHP 有用資源
- PHP - 速查表
- PHP - 問答
- PHP - 快速指南
- PHP - 線上編譯器
- PHP - 有用資源
- PHP - 討論
PHP - php_function_openssl_pkey_get_private() 函式
定義和用法
openssl_pkey_get_private() 函式將返回私鑰。
描述
函式 openssl_pkey_get_private() 從給定的公鑰/私鑰返回私鑰。例如,來自 .pem 檔案的內容。
語法
openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] ) : resource
引數
| 序號 | 引數 | 描述 |
|---|---|---|
| 1 |
key |
您可以從 .pem 檔案中獲取金鑰,或使用 openssl_pkey_new() 生成的私鑰。 |
| 2 |
passphrase |
如果您使用的金鑰已加密,則必須指定密碼。 |
返回值
如果 PHP openssl_pkey_get_private() 函式沒有錯誤,則返回一個資源識別符號。如果金鑰生成失敗,則返回 false。
PHP 版本
此函式適用於 PHP 5.0.0 及更高版本。
示例 1
openssl_pkey_get_private() 的工作原理
<?php
// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();
openssl_pkey_export($privkey, $yourprivatekey);
$testprivatekey = openssl_pkey_get_private($yourprivatekey);
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
var_dump($testprivatekey);
}
?>
這將產生以下結果
resource(3) of type (OpenSSL key)
示例 2
openssl_pkey_get_private() 和 openssl_pkey_get_details() 的工作原理 -
<?php
$privkey = openssl_pkey_new();
openssl_pkey_export($privkey, $yourprivatekey);
$testprivatekey = openssl_pkey_get_private($yourprivatekey);
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
//var_dump($testprivatekey);
$key_details = openssl_pkey_get_details($testprivatekey);
print_r($key_details);
}
?>
這將產生以下結果
Array
(
[bits] => 2048
[key] => -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnO1F0Gt03mgxLcDpRxlm
VEh8sfIfan5o11EcoLaEwaTyKgMNm7A4Rs9LcG3fwkNjXo8XNRQv6OSrhl8y00AX
+cPUb78Qp/K3INmyXr8UUVWy0BT+Rxq5kez1TmZhpITxUYLScEL8DPcghFyfstRa
5hP8hc0cwYM6N4ieOlXIxrdmbzTn92MeyiTstTvHxt8aGKbSdpmksWyNeqke22kM
9pBfEsf98XFh5HoQBQaQF6GXL5y00PWIdki7DTzYtXXPRGcQl/53M5HrGGdP0kGS
uD4YOFXRWYtQR1ZYLa4Ej+BP0eOpfxXiME0aaH1/2iWqyi+bsvkdgFbu92j5ptsr
yQIDAQAB
-----END PUBLIC KEY-----
[rsa] => Array
(
[n] => ��E�kt�h1-��GfTH|��j~h�Q��*
��8F�Kpm��Cc^�5/�䫆_2�@��o��� ٲ^�QU���G��Nfa��Q��pB�� �\��Z�����:7��:U�Ʒfo4��c�$�;����v��l�z��i��_��qa�z���/��vH�
<صu�Dg��w3��gO�A��>8U�Y�PGVX-�O���0Mh}�%��/���V��h��+�
[e] =>
[d] => MK��C|��Y5��5}Z�R0;�S�I�V����M��0�Lw�r��R��|��C��d�W�}�#��v�[9iZI��1��&!��A�;8K�%}��`@
������}��n b�]K�L#�~Sg�' 81!��2R]������`�vl�&�Z�@-q��7u�#����.��d�����]�*Z-�'�|�ܳ ?M
j���Å
[p] => �*&5IXM�U�$u�'��d,�$x��iR�1�ᙯ��A�Cxi`%�FR�5�
��!�a��C��֧t�^�� ��f�$��V�+�ү��]v"�+=��I�w��RN��<�P�e��
3-�"��^���|_�-�l��lD,���=�26�ۗXGg5�@}q��T.�j��A��#��m,>#YN}��,pk}g
[dmp1] => ��
�l5o�5L�����ޅh)I�+��D�n�J!��ycP��1
=u>&��h-HT���K��j;�um
�oO\�e��.��
X�%s��ڕ_�|Za3��z$�\n1�N1�u�j)��z�
[dmq1] => ��n[������ǣ<��t��^��P��)�F@ni��
�gHꥴ(��@#s�!+$�D��]����{��I㯽l��[$��>i q|�$�Gء�I'R��^c
"����e"k
[iqmp] => �Ŗij� ��a6�W#�:��#bS?�Ó��S�r#�C�ױ87])4��Z��`��ݻ��w��.�a�y��@ �ѓ�p���s�XP.{�o9h�Bq��뵘�EU��n ��&S��tE�
)
[type] => 0
)
示例 3
帶有密碼的 openssl_pkey_get_private() 的工作原理
<?php
$privkey = openssl_pkey_new();
openssl_pkey_export($privkey, $testkey, 'helloworld');
$testprivatekey = openssl_pkey_get_private($testkey, 'helloworld');
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
//var_dump($testprivatekey);
$key_details = openssl_pkey_get_details($testprivatekey);
print_r($key_details);
}
?>
這將產生以下結果
Array
(
[bits] => 2048
[key] => -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs4HV+NM9dQ1ssuxb9PhM
64Yn8RHgv7YKK33nZudmk6SCOr9yRo7immp+bkaA0Lt/9ONJP+UF5VCltpdNdHLb
GDTo+TkK5NdTJDalON3L9EhB4cJeQaQQh59uJGf39Et0BJiYiINXsNdlc/pig1/Z
XDRyhEtqQ6nZJkOIIWO0gpdj9xj2naq/wy6Oas4p3/A7EvN5nB22xfEVIptKUZzi
YWV4Bs5y2OM3GRwVv+jLYKQ49S/ZKq7MpdCxcXC6YxyrlEIz4PL9cWRtybK3BINv
JnCWrfWRhUtlAY/CvfXrq2PhXwHVcebsDOPob6A71TcZMirxFZVyqkC+4rGX+5be
PwIDAQAB
-----END PUBLIC KEY-----
[rsa] => Array
(
[n] => ��=u
l��[��L�'�
+}�f�f��:�rF��j~nF��I?��P��Mtr�4��9
��S$6�8��HA��^A���n$g��Kt��W��es�b�_�\4r�KjC��&C�!c��c���.�j�)��;�y���"�JQ��aex�r��7��`�8�/�*�̥бqp�c��B3��qdmɲ��o&p��Ke�½��c�_�q����o�;�72*��r�@�ⱗ��?
[e] =>
[d] => ��e��e�$%
sဩQ��EUA�D��Bu��34$�v�#��P�\��uD��(�z�w+�z��aͲ5���X���q�Pŵڡ��%O+3��]+o�3�FM�*�Z^L��k�/�Ty��/��;�)�sB�Np�5�@�x�,8�z2�#�SyM�o�Xċ.��;��K�� ��ڊ��qsLLD
^��"j��*=Io{��7`a��{�l�ᛅ�B����#���\�
[p] => ׳��à�tY�@��[N��n�p�Ƌ��f� ��?7/\��y�i�w�X�P�5�@��s BD�C⎓�| �*���JH��/��|`��+�3��]��oc?�fI�Ze�`�C�>U��|�"��ڊ:U��^��L��g� �u|@z��F%6�X/�
��Ú��+�_�Yh:��59}�D�&כ��Gc
[dmp1] => i�*/
�U�̯�6��
��|�>3�HP�hN��.�G���9��cxj*�!��0�ؼ��R��:�9E(�Z��$�&�&7>�9.Ih��E�z/�,�QR�"�'�;��^��xq
[dmq1] => |�w��`��䛌��
��3��b���AZ�t��.8���Q]��F�iI��2)�{<��G^ܵt��u�Mb��4I�YL�E�S�8a!�6��&Q�(�^����É��
[iqmp] => \p5��N��
$WC�j�� �|�{>d����Y
f��9�3�$rF(ON��>�� ����%��`(�
&�op� �}=C+��b�˝�#�G"�0T.���G`t�܈��^��\7
)
[type] => 0
)
示例 4
使用 .pem 檔案的 openssl_pkey_get_private() 的工作原理
<?php
//creating private key
$privkey = openssl_pkey_new();
openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/fortesting.pem');
//using .pem file with private key.
$testprivatekey = openssl_pkey_get_private(file_get_contents('C:/xampp/htdocs/modules/openssl/fortesting.pem'));
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
//var_dump($testprivatekey);
$key_details = openssl_pkey_get_details($testprivatekey);
print_r($key_details);
}
?>
這將產生以下結果
Array
(
[bits] => 2048
[key] => -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqaka1+sKh3D4HgIDzER6
vr/DI5u6h1QF6Xm1q/nOduTn0vlx4bLv+QEbcElXV1Bss4W7wOZRkMIOwj4xcT+e
PGKaN95JUyxC/NQ13+F6K5yUk0ish36BVusrHt0wdZj28f63gHm824D0yDnn+aJr
s+vSuMppErUD/i0QUFnO86ypHi/zeb+QBEif4a82RtfwRIVUtE/Sxy08ct+1ogA9
pdBd47elLmcekz/dtSUqpUjLj5SNojS7AJCZ5LNxnLOzN3ryCQXGaAn8KHQ284Xs
jlYBjSjXFLY/1fLDYDpQGOApoBj2vK9Io8MxFU3uss79Ezb6LwKZG6CmzlbldBrJ
YQIDAQAB
-----END PUBLIC KEY-----
[rsa] => Array
(
[n] => ����
�p��Dz�#��T�y��v��q��pIWWPl��Q���>1q?�
[d] => �9:���Y��"��*xu�&��gt�� &"��{
��!Px�r�hn#��!c%�u
�ʻ�꛷x��7z��&��|��ǔv�Ĩѳ�XT?΅��[w"�=e��m�1R_JH�/�hX��.�E���&&'�:�/:��.I�zdx@�6��)��i��1L�z��"X��>��]�t����Rh��g��!8�Y9�G�rŜ��9z���z��~�����jo_��
[p] => ٥���+�iy��Ѷm:#`BF��Bj>����f�2W%�eIAn� ����۪.o� v�`tgg��a�L�%ٱ�
L[��\6��`��sx]�~�bU�fF�/Oy�6�+~v��7u�
[q] => ǎ�Ͱ�u(�.L��l��o�Gc�x��@4��r� `i�i�X��v��'�33X��c��_��m8��M���5#t"��^�{�j vSLi�X��mhԷI܀8�
1t�
[dmp1] => ���6�$5�Eg�Q�1F"��8y��V`��\��A�{��0�
��ym�6�dUI<�8�f��\��"K�Khja5�z
�w�'�m�F9�nv�rϑFP]��i�%��߿L�1�m'�Y��4
@lth7�
[dmq1] => il5w*�eG�~��z�2�{��*�"Ӟ���`�����y�r����%@�lq���De��U�z��
�s.��[
��G�l_äh���8¢H4N�7$�25ң?�L�
[iqmp] => 9"l@Ǚ�O�[I)}��K�6A/f5S� ���\�u��>��C��� �z��]�B�-ry/��D��w��H|�g:��8���s̙��◻(�B�Eo�` 0
)
php_function_reference.htm
廣告