我是靠谱客的博主 狂野老鼠,最近开发中收集的这篇文章主要介绍php+数据加密+密钥,使用 AWS KMS 加密和解密 AWS SDK for PHP 数据密钥 - 适用于 PHP 的 AWS 开发工具包...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS KMS 加密和解密 AWS SDK for PHP 数据密钥

数据密钥 是可用于加密数据的加密密钥,包括大量数据和其他数据加密密钥。

您可以使用 AWS Key Management Service (AWS KMS) 客户主密钥 (CMK) 生成、加密和解密数据密钥。但是,AWS KMS 不会存储、管理或跟踪您的数据密钥,也不会使用数据密钥执行加密操作。在 AWS KMS 之外使用和管理数据密钥。

以下示例演示如何:

使用 Encrypt 加密数据密钥。

使用 Decrypt 解密数据密钥。

使用 ReEncrypt 通过新 CMK 重新加密数据密钥。

版本 3 的所有示例代码在 AWS SDK for PHP 上的此处提供。GitHub

Credentials

有关使用 AWS Key Management Service (AWS KMS) 的更多信息,请参阅 AWS KMS 开发人员指南。

Encrypt

Encrypt 操作专用于加密数据密钥,但并不常用。GenerateDataKey 和GenerateDataKeyWithoutPlaintext 操作返回加密的数据密钥。将加密的数据移到新的 AWS 区域并希望在新区域中使用 CMK 加密数据密钥时,可以使用 Encypt 方法。

导入

require 'vendor/autoload.php';

use AwsKmsKmsClient;

use AwsExceptionAwsException;

示例代码

$KmsClient = new AwsKmsKmsClient([

'profile' => 'default',

'version' => '2014-11-01',

'region' => 'us-east-2'

]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$message = pack('c*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);

try {

$result = $KmsClient->encrypt([

'KeyId' => $keyId,

'Plaintext' => $message,

]);

var_dump($result);

} catch (AwsException $e) {

// output error message if fails

echo $e->getMessage();

echo "n";

}

Decrypt

要解密数据密钥,请使用 Decrypt 操作。

导入

require 'vendor/autoload.php';

use AwsKmsKmsClient;

use AwsExceptionAwsException;

示例代码

$KmsClient = new AwsKmsKmsClient([

'profile' => 'default',

'version' => '2014-11-01',

'region' => 'us-east-2'

]);

$ciphertext = 'Place your cipher text blob here';

try {

$result = $KmsClient->decrypt([

'CiphertextBlob' => $ciphertext,

]);

$plaintext = $result['Plaintext'];

var_dump($plaintext);

} catch (AwsException $e) {

// Output error message if fails

echo $e->getMessage();

echo "n";

}

Reencrypt

要解密加密的数据密钥,然后立即在不同的 CMK 下重新加密该数据密钥,请使用 ReEncrypt 操作。这些操作全部都在 AWS KMS 内的服务器端执行,因此它们永远不会将您的明文在 AWS KMS 外公开。

导入

require 'vendor/autoload.php';

use AwsKmsKmsClient;

use AwsExceptionAwsException;

示例代码

$KmsClient = new AwsKmsKmsClient([

'profile' => 'default',

'version' => '2014-11-01',

'region' => 'us-east-2'

]);

$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$ciphertextBlob = 'Place your cipher text blob here';

try {

$result = $KmsClient->reEncrypt([

'CiphertextBlob' => $ciphertextBlob,

'DestinationKeyId' => $keyId,

]);

var_dump($result);

} catch (AwsException $e) {

// output error message if fails

echo $e->getMessage();

echo "n";

}

最后

以上就是狂野老鼠为你收集整理的php+数据加密+密钥,使用 AWS KMS 加密和解密 AWS SDK for PHP 数据密钥 - 适用于 PHP 的 AWS 开发工具包...的全部内容,希望文章能够帮你解决php+数据加密+密钥,使用 AWS KMS 加密和解密 AWS SDK for PHP 数据密钥 - 适用于 PHP 的 AWS 开发工具包...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部