函式名: openssl_pkcs7_decrypt()
適用版本: PHP 4 >= 4.0.6, PHP 5, PHP 7
函式說明: openssl_pkcs7_decrypt() 函式用於使用私鑰解密 PKCS#7 格式的加密資料。
語法: bool openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, array $recipkey ] )
引數:
- infilename:輸入檔案的路徑,包含被加密的資料。
- outfilename:輸出檔案的路徑,用於儲存解密後的資料。
- recipcert:證書檔案的路徑,包含用於解密資料的公鑰證書。
- recipkey:(可選)證書檔案的路徑,包含與私鑰證書配對的私鑰。
返回值:成功時返回 TRUE,失敗時返回 FALSE。
示例:
// 加密資料檔案路徑
$encryptedFile = "encrypted.p7";
// 解密後的資料儲存路徑
$decryptedFile = "decrypted.txt";
// 用於解密的公鑰證書路徑
$certificateFile = "certificate.pem";
// 用於解密的私鑰路徑(可選)
$privateKeyFile = "private_key.pem";
// 解密資料
$result = openssl_pkcs7_decrypt($encryptedFile, $decryptedFile, $certificateFile, $privateKeyFile);
if ($result) {
echo "資料解密成功!";
} else {
echo "資料解密失敗!";
}
注意事項:
- 使用該函式前,需要確保 PHP 環境已經啟用 OpenSSL 擴充套件。
- infilename 和 outfilename 引數可以是檔案路徑或者 PHP 流資源。
- recipkey 引數是一個可選的私鑰檔案路徑,如果未提供,則函式會嘗試從 recipcert 引數中提取私鑰。
- 如果解密成功,解密後的資料將儲存在 outfilename 指定的檔案中。
- 如果解密失敗,可以透過檢查錯誤日誌獲取詳細的錯誤資訊。
以上是 openssl_pkcs7_decrypt() 函式的用法及示例。請根據實際情況替換示例中的檔案路徑和檔名。