查询

MongoDB\Driver\ClientEncryption::rewrapManyDataKey()函数—用法及示例

「 重新包装多个数据密钥,将其从一个密钥外部重新包装到另一个密钥外部 」


函数名称:MongoDB\Driver\ClientEncryption::rewrapManyDataKey()

函数描述:重新包装多个数据密钥,将其从一个密钥外部重新包装到另一个密钥外部。

适用版本:该函数在MongoDB PHP扩展版本1.7.0及以上版本可用。

用法:

MongoDB\Driver\ClientEncryption::rewrapManyDataKey(
    string $keyVaultNamespace,
    array $keyAltNames,
    string $wrappingKey,
    string $unwrappingKey
): array|object

参数:

  • $keyVaultNamespace:密钥库的命名空间。
  • $keyAltNames:待重新包装的数据密钥的备用名称数组。
  • $wrappingKey:用于重新包装数据密钥的密钥ID或名称。
  • $unwrappingKey:用于解包数据密钥的密钥ID或名称。

返回值:

  • 成功时,返回一个包含重新包装的数据密钥的数组或对象。
  • 失败时,抛出MongoDB\Driver\Exception\Exception或其子类的异常。

示例:

// 创建一个MongoDB\Client实例
$client = new MongoDB\Client("mongodb://localhost:27017");

// 创建一个MongoDB\Driver\ClientEncryption实例
$clientEncryption = new MongoDB\Driver\ClientEncryption($client);

// 定义待重新包装的数据密钥备用名称数组
$keyAltNames = [
    "dataKey1",
    "dataKey2"
];

// 定义用于重新包装和解包数据密钥的密钥ID或名称
$wrappingKey = "wrappingKey";
$unwrappingKey = "unwrappingKey";

try {
    // 重新包装多个数据密钥
    $rewrappedDataKeys = $clientEncryption->rewrapManyDataKey(
        "myKeyVault.namespace",
        $keyAltNames,
        $wrappingKey,
        $unwrappingKey
    );

    // 打印重新包装的数据密钥
    foreach ($rewrappedDataKeys as $keyAltName => $rewrappedDataKey) {
        echo "Rewrapped data key for {$keyAltName}: {$rewrappedDataKey}\n";
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    echo "Error: " . $e->getMessage() . "\n";
}

注意事项:

  • 该函数需要MongoDB扩展1.7.0及以上版本。
  • 在调用此函数之前,需要先创建一个MongoDB\Driver\ClientEncryption实例。
  • 在调用此函数之前,需要确保已经成功创建了密钥库,并且存在指定的密钥ID或名称。
补充纠错
热门PHP函数
分享链接