google/cloud-kms

PHP 云 KMS 客户端

v2.0.0 2024-09-13 22:45 UTC

README

云 KMS提供惯用 PHP 客户端。

Latest Stable Version Packagist

注意: 此存储库是Google Cloud PHP项目的一部分。有关支持请求、错误报告或开发贡献,请将该项目指向该项目。

安装

首先,安装 PHP 首选的依赖管理器 Composer

现在安装此组件

$ composer require google/cloud-kms

此组件支持 HTTP/1.1 上的 REST 和 gRPC。为了利用 gRPC(例如流方法)提供的优势,请参阅我们的gRPC 安装指南

身份验证

有关客户端身份验证的更多信息,请参阅我们的身份验证指南。身份验证后,您即可开始发送请求。

示例

require __DIR__ . '/vendor/autoload.php';

use Google\ApiCore\ApiException;
use Google\Cloud\Kms\V1\CryptoKey;
use Google\Cloud\Kms\V1\CryptoKey\CryptoKeyPurpose;
use Google\Cloud\Kms\V1\KeyManagementServiceClient;
use Google\Cloud\Kms\V1\KeyRing;

$client = new KeyManagementServiceClient();

$projectId = 'example-project';
$location = 'global';

// Create a keyring
$keyRingId = 'example-keyring';
$locationName = $client::locationName($projectId, $location);
$keyRingName = $client::keyRingName($projectId, $location, $keyRingId);

try {
    $keyRing = $client->getKeyRing($keyRingName);
} catch (ApiException $e) {
    if ($e->getStatus() === 'NOT_FOUND') {
        $keyRing = new KeyRing();
        $keyRing->setName($keyRingName);
        $client->createKeyRing($locationName, $keyRingId, $keyRing);
    }
}

// Create a cryptokey
$keyId = 'example-key';
$keyName = $client::cryptoKeyName($projectId, $location, $keyRingId, $keyId);

try {
    $cryptoKey = $client->getCryptoKey($keyName);
} catch (ApiException $e) {
    if ($e->getStatus() === 'NOT_FOUND') {
        $cryptoKey = new CryptoKey();
        $cryptoKey->setPurpose(CryptoKeyPurpose::ENCRYPT_DECRYPT);
        $cryptoKey = $client->createCryptoKey($keyRingName, $keyId, $cryptoKey);
    }
}

// Encrypt and decrypt
$secret = 'My secret text';
$response = $client->encrypt($keyName, $secret);
$cipherText = $response->getCiphertext();

$response = $client->decrypt($keyName, $cipherText);

$plainText = $response->getPlaintext();

assert($secret === $plainText);

版本

此组件被认为是 GA(通用可用)。因此,它不会在任何次要或修补版本中引入不兼容的后向兼容更改。我们将优先处理问题和请求。

下一步

  1. 了解官方文档