Amazon S3客户使用PHP SDK提供的加密

用户名

我正在尝试使用客户提供的加密密钥将对象上传到S3。http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html

我的代码如下:

$this->s3->putObject(array(
  'Bucket' => $this->bucket,
  'Key' => "$filename",
  'Body' => $resource,
  'ACL' => 'private',
  'SSECustomerAlgorithm' => 'AES256',
  'SSECustomerKey' => base64_encode('48wk86271sDb23pY23zT5rZJ7q55R7eE'),
  'SSECustomerKeyMD5'=> base64_encode(md5('48wk86271sDb23pY23zT5rZJ7q55R7eE'))
));

我得到的错误说:

AWS错误消息:密钥的计算出的MD5哈希与提供的哈希不匹配

我究竟做错了什么?我的密钥48wk86271sDb23pY23zT5rZJ7q55R7eE是256位。我也尝试过使用base64_encode(md5(key,true))。

迈克尔-SQLbot

REST API文档指定的用户密码和用户密码MD5都被送到base-64编码...

x-amz服务器端加密客户密钥

使用此标头为Amazon S3提供256位base64编码的加密密钥,以用于加密或解密数据。

x-amz服务器端加密客户密钥MD5

使用此标头提供根据RFC 1321的加密密钥的base64编码的128位MD5摘要。AmazonS3使用此标头进行消息完整性检查,以确保传输加密密钥时不会出错。

...但是,PHP SDK会为您处理这两个编码步骤,因此应在传递参数时不进行任何编码。

'SSECustomerAlgorithm' => 'AES256',
'SSECustomerKey'       => 'key_=_string_of_exactly_32_bytes',
'SSECustomerKeyMD5'    => md5('key_=_string_of_exactly_32_bytes',true),

当然,您可能希望将32字节的键字符串包含在变量中,而不是将同一文字字符串复制粘贴到代码中两次。第二个参数“ true”md5() 指定要返回SDK所期望的二进制md5哈希值,而不是默认情况下返回的十六进制编码变体。

请记住,使用客户提供的加密密钥时,如果丢失了密钥,则会丢失数据。S3不存储密钥,没有密钥,则无法获取存储的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Amazon S3客户使用PHP SDK提供的加密

来自分类Dev

使用PHP SDK在Amazon S3上上传文件

来自分类Dev

使用PHP SDK在Amazon S3上上传文件

来自分类Dev

在Amazon AWS PHP SDK中为S3客户端设置适当的终端节点

来自分类Dev

删除多个对象Amazon s3 PHP SDK

来自分类Dev

删除多个对象Amazon s3 PHP SDK

来自分类Dev

Amazon S3 SDK for PHP中的异常处理

来自分类Dev

使用 PHP 将文件上传到 Amazon S3 存储桶 - 不使用 SDK

来自分类Dev

使用PHP SDK在Amazon S3上上传已调整大小的图像

来自分类Dev

既然S3支持使用用户提供的密钥进行服务器端加密,那么OpenTok可以将加密密钥发送到Amazon S3吗?

来自分类Dev

java:使用vfs s3插件在Amazon S3中使用服务器端加密

来自分类Dev

显示使用Swift 3和Amazon SDK将图像上传到Amazon S3的上传进度

来自分类Dev

Amazon S3静态站点提供旧内容

来自分类Dev

Ruby Amazon S3 SDK是否使用SSLv3?

来自分类Dev

Amazon S3 PHP SDK:上载的图像具有错误的mime类型

来自分类Dev

图片上传Amazon S3 android SDK 2.0

来自分类Dev

Amazon S3 Java SDK多个文件上传

来自分类Dev

Amazon S3签名不匹配-AWS SDK Java

来自分类Dev

Amazon S3:使用aws-sdk-ruby设置权限

来自分类Dev

使用Ruby SDK将文件上传到Amazon S3

来自分类Dev

并非使用 Amazon SDK 从 S3 检索的所有数据(仅 1000 个元素)

来自分类Dev

使用 .net SDK 从 Amazon S3 存储桶下载文件夹

来自分类Dev

使用PHP从Amazon s3压缩并下载文件

来自分类Dev

通过 amazon s3 sdk for javascript 访问 IAM 角色 S3 存储桶图像

来自分类Dev

带有Amazon S3 PHP SDK v3的Google存储不正确的授权标头

来自分类Dev

什么是好的Amazon S3客户端?

来自分类Dev

什么是好的Amazon S3客户端?

来自分类Dev

使用上传到Amazon S3的JQuery文件在客户端调整图像大小

来自分类Dev

使用Laravel从Amazon S3直接下载到客户端

Related 相关文章

  1. 1

    Amazon S3客户使用PHP SDK提供的加密

  2. 2

    使用PHP SDK在Amazon S3上上传文件

  3. 3

    使用PHP SDK在Amazon S3上上传文件

  4. 4

    在Amazon AWS PHP SDK中为S3客户端设置适当的终端节点

  5. 5

    删除多个对象Amazon s3 PHP SDK

  6. 6

    删除多个对象Amazon s3 PHP SDK

  7. 7

    Amazon S3 SDK for PHP中的异常处理

  8. 8

    使用 PHP 将文件上传到 Amazon S3 存储桶 - 不使用 SDK

  9. 9

    使用PHP SDK在Amazon S3上上传已调整大小的图像

  10. 10

    既然S3支持使用用户提供的密钥进行服务器端加密,那么OpenTok可以将加密密钥发送到Amazon S3吗?

  11. 11

    java:使用vfs s3插件在Amazon S3中使用服务器端加密

  12. 12

    显示使用Swift 3和Amazon SDK将图像上传到Amazon S3的上传进度

  13. 13

    Amazon S3静态站点提供旧内容

  14. 14

    Ruby Amazon S3 SDK是否使用SSLv3?

  15. 15

    Amazon S3 PHP SDK:上载的图像具有错误的mime类型

  16. 16

    图片上传Amazon S3 android SDK 2.0

  17. 17

    Amazon S3 Java SDK多个文件上传

  18. 18

    Amazon S3签名不匹配-AWS SDK Java

  19. 19

    Amazon S3:使用aws-sdk-ruby设置权限

  20. 20

    使用Ruby SDK将文件上传到Amazon S3

  21. 21

    并非使用 Amazon SDK 从 S3 检索的所有数据(仅 1000 个元素)

  22. 22

    使用 .net SDK 从 Amazon S3 存储桶下载文件夹

  23. 23

    使用PHP从Amazon s3压缩并下载文件

  24. 24

    通过 amazon s3 sdk for javascript 访问 IAM 角色 S3 存储桶图像

  25. 25

    带有Amazon S3 PHP SDK v3的Google存储不正确的授权标头

  26. 26

    什么是好的Amazon S3客户端?

  27. 27

    什么是好的Amazon S3客户端?

  28. 28

    使用上传到Amazon S3的JQuery文件在客户端调整图像大小

  29. 29

    使用Laravel从Amazon S3直接下载到客户端

热门标签

归档