PHP - OpenSSL 函式



什麼是 OpenSSL?

OpenSSL 是一個免費的開源模組,旨在處理計算機網路上發生的通訊。OpenSSL 是傳輸層安全 (TLS) 和安全套接字層 (SSL) 協議的工具。

什麼是 SSL 證書?

安全套接字層,即 SSL,由網站使用。SSL 證書透過使用加密來保護兩臺計算機之間的資料。這兩臺計算機可以是客戶端和伺服器之間的資料共享。當您共享密碼、信用卡詳細資訊、家庭住址、社會安全號碼等資料時,必須對其進行保護,SSL 證書負責處理此操作。SSL 證書確保對參與安全連線的兩臺計算機的身份進行身份驗證。

在 PHP 中安裝 OpenSSL

OpenSSL 模組預設新增到 PHP 中。您可以透過刪除 php.ini 中副檔名開頭新增的 (;) ;extension=php_openssl.dll 來啟用它。之後重新啟動 Apache,並確認更改是否生效,將以下程式碼另存為 .php 並執行瀏覽器中的 .php。

<?php
   phpinfo();
?>
您應該在瀏覽器中看到已啟用的 openssl,如下所示:openssl

OpenSSL 配置

openssl.cnf 是配置檔案,其中包含 openssl 工作所需的所有預設配置。要執行 openssl,首先 php 將嘗試找到配置檔案。要獲得相同的效果,您必須將 php 資料夾新增到環境變數中。

如果您是 Windows 使用者,以下是在 php 資料夾中設定環境變數的步驟

1. 右鍵單擊“我的電腦”,然後轉到“屬性”。

2. 轉到“高階系統設定”。

3. 單擊“環境變數”按鈕。

4. 編輯路徑變數,然後單擊“編輯”按鈕。

5. 現在在末尾新增 Php 資料夾路徑。我使用的是 xampp,所以我的 php 資料夾是 C:\xampp\php;

6. 完成後,單擊“確定”按鈕。

7. 現在開啟命令提示符並輸入命令:openssl version -a。

C:\Windows\system32>openssl version -a
OpenSSL 1.0.2l  25 May 2017
built on: reproducible build, date unspecified
platform: mingw64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,2,long) idea(int) blowfish(idx)
compiler: x86_64-w64-mingw32-gcc -I. -I.. -I../include  -D_WINDLL -DOPENSSL_PIC
-DOPENSSL_THREADS -D_MT -DDSO_WIN32 -static-libgcc -DL_ENDIAN -O3 -Wall -DWIN32_
LEAN_AND_MEAN -DUNICODE -D_UNICODE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSH
A512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
 -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/ssl"

現在 php 將能夠找到 openssl.cnf 配置檔案。

OpenSSL 函式

下表列出了所有與 PHP OpenSSL 相關的函式。此處,“版本”列表示支援該函式的 PHP 的最早版本。
序號 函式與描述 版本
1 openssl_pkey_new()

返回一個包含新的私鑰和公鑰對的資源識別符號

5.0.0
2 openssl_pkey_get_private()

返回私鑰

5.0.0
3 openssl_pkey_get_public()

返回公鑰

5.0.0
4 openssl_​pkey_​export_​to_​file()

將金鑰匯出到檔案

5.0.0
5 openssl_private_encrypt()

使用私鑰加密資料

5.0.0
6 openssl_public_encrypt()

使用公鑰加密資料

5.0.0
7 openssl_public_decrypt()

使用公鑰解密資料

5.0.0
8 openssl_private_decrypt()

使用私鑰解密資料

5.0.0
php_function_reference.htm
廣告