Php AWS KMS-存储/使用密文Blob

Php AWS KMS-存储/使用密文Blob,php,amazon-web-services,aws-kms,Php,Amazon Web Services,Aws Kms,我正在使用AWS密钥管理服务进行设置,并调用方法generateDataKey。该方法正在工作并返回CiphertextBlob和明文blob 但是,blob的格式如下: �g�'��w�i�<��a*\B4p 1IG �G�'��W�我� 答案是一个二进制blob。这些需要进行base64编码,以便获得预期的结果 示例代码如下: use Aws\Kms\KmsClient; $options = [ 'region' => 'eu-wes

我正在使用AWS密钥管理服务进行设置,并调用方法
generateDataKey
。该方法正在工作并返回CiphertextBlob和明文blob

但是,blob的格式如下:

�g�'��w�i�<��a*\B4p 1IG

�G�'��W�我� 答案是一个二进制blob。这些需要进行base64编码,以便获得预期的结果

示例代码如下:
use Aws\Kms\KmsClient;

$options = [
    'region'                => 'eu-west-1',
    'version'               => '2014-11-01',
    'profile'               => 'default',
    'retries'               => 0,
    'scheme'                => 'https',
    'debug'                 => false
];

$kmsClient = new KmsClient($options);

$result = $kmsClient->generateDataKey([
    'KeyId' => '12345678-1234-1233-1234-1234567890ab',
    'KeySpec' => 'AES_256'
]);

echo base64_encode($result["CiphertextBlob"]);
echo "\r\n";
echo ($result["KeyId"]);

在传递值时,您应该使用Base-64编码和解码。这就成功了-谢谢!还有一点需要补充:请不要存储纯文本键。它应该用于加密您的数据,然后立即丢弃。根据AWS官方指南():“安全最佳实践规定,使用后应尽快从内存中删除明文数据密钥。”