English | 简体中文 | 繁體中文
查询

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函数
分享链接