查詢

openssl_cms_encrypt()函式—用法及示例

「 使用 CMS (Cryptographic Message Syntax) 格式對資料進行加密 」


函式名稱:openssl_cms_encrypt()

適用版本:PHP 5 >= 5.3.0, PHP 7

函式描述:openssl_cms_encrypt() 函式用於使用 CMS (Cryptographic Message Syntax) 格式對資料進行加密。

用法:

openssl_cms_encrypt(
    string $data,
    string $certificate,
    array $headers,
    int $flags = 0,
    int $cipher = OPENSSL_CIPHER_RC2_40
): string|false

引數:

  • $data:需要加密的資料,必須是字串型別。
  • $certificate:用於加密的證書,可以是證書檔案的路徑或者是 PEM 格式的字串。
  • $headers:關聯陣列,指定加密過程中的一些頭部資訊,例如加密演算法、加密證書等。
  • $flags:可選引數,用於指定加密的標誌位,預設為0。
  • $cipher:可選引數,用於指定加密演算法,預設為 OPENSSL_CIPHER_RC2_40。

返回值:

  • 成功時,返回加密後的資料,型別為字串。
  • 失敗時,返回 false。

示例:

// 載入證書
$certificate = file_get_contents('path/to/certificate.pem');

// 設定頭部資訊
$headers = [
    'Content-Type' => 'application/octet-stream',
    'Encrypted-By' => 'PHP OpenSSL',
    'Encryption-Algo' => 'aes-256-cbc',
    'Encryption-Certificate' => '/C=US/O=MyOrg/CN=Test Cert',
];

// 待加密的資料
$data = 'This is a secret message.';

// 加密資料
$encryptedData = openssl_cms_encrypt($data, $certificate, $headers);

if ($encryptedData !== false) {
    echo '加密成功:' . $encryptedData;
} else {
    echo '加密失敗';
}

注意事項:

  1. 在使用該函式之前,確保已經正確載入了 OpenSSL 擴充套件。
  2. 加密過程中,需要提供有效的證書用於加密操作。
  3. 頭部資訊是一個關聯陣列,可以自定義相關的資訊,確保加密和解密過程中的一致性。
  4. 加密演算法可以根據需要進行調整,預設為 RC2 40 位演算法,可以透過 $cipher 引數進行修改。
  5. 在加密成功後,可以將加密後的資料進行傳輸或儲存,確保資料的安全性。
補充糾錯
上一個函式: openssl_cms_read()函式
下一個函式: openssl_cms_decrypt()函式
熱門PHP函式
分享連結