查詢

MongoDB\Driver\ClientEncryption::encryptExpression()函式—用法及示例

「 將一個表示式加密成二進位制資料,以便在MongoDB中進行儲存或傳輸 」


函式名:MongoDB\Driver\ClientEncryption::encryptExpression()

適用版本:MongoDB PHP Library 1.7.0及以上版本

用法: MongoDB\Driver\ClientEncryption::encryptExpression()函式用於將一個表示式加密成二進位制資料,以便在MongoDB中進行儲存或傳輸。

語法:

public static function encryptExpression(
    string $expression,
    array $options = []
): Binary

引數:

  • $expression(必填):要加密的表示式,可以是字串或二進位制資料。
  • $options(可選):一個關聯陣列,用於指定加密選項。支援以下選項:
    • keyId:加密金鑰的ID,必須是一個UUID字串,預設為null。
    • algorithm:加密演算法的名稱,例如"AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"或"AEAD_AES_256_CBC_HMAC_SHA_512-Random",預設為null。
    • additionalAuthenticatedData:附加的認證資料,可以是字串或二進位制資料,預設為null。

返回值:

  • 返回一個Binary物件,包含加密後的二進位制資料。

示例:

use MongoDB\Driver\ClientEncryption;

// 建立ClientEncryption物件
$clientEncryption = new ClientEncryption($keyVaultNamespace, $keyVaultClient);

// 要加密的表示式
$expression = '1234567890';

// 加密選項
$options = [
    'keyId' => '01234567-89ab-cdef-0123-456789abcdef',
    'algorithm' => 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic',
    'additionalAuthenticatedData' => 'example',
];

// 加密表示式
$encryptedExpression = $clientEncryption->encryptExpression($expression, $options);

// 列印加密後的二進位制資料
echo $encryptedExpression->getData();

注意事項:

  • 在使用MongoDB\Driver\ClientEncryption類之前,需要先建立一個ClientEncryption物件,並透過建構函式傳入金鑰管理器的名稱空間和客戶端物件。
  • 要使用此函式,需要安裝MongoDB擴充套件,並啟用Client-Side Field Level Encryption(CSFLE)功能。
  • 金鑰管理器必須提供所需的金鑰,以便正確加密和解密資料。
補充糾錯
熱門PHP函式
分享連結