Php AWS KMS-存储/使用密文Blob
我正在使用AWS密钥管理服务进行设置,并调用方法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
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官方指南():“安全最佳实践规定,使用后应尽快从内存中删除明文数据密钥。”