【问题标题】:Amazon S3 Signature亚马逊 S3 签名
【发布时间】:2017-05-22 00:26:02
【问题描述】:

如何在 nodejs 环境中创建加密的十六进制编码签名?

你就这样吗?

const secret = 'mysecret';
const date = yyyymmdd;
const dateKey = crypto.createHmac('sha256', 'AWS4' + secret + ',' + date);
const dateRegionKey = crypto('sha256', dateKey + ',' + 'myregion')
const DateRegionServiceKey = crypto('sha256', dateRegionKey + ',' + 'someservice');
const signingKey = crypto('sha256', DateRegionServiceKey + ',' + 'aws4_request');

const signature = crypo('sha256', signingKey + base64Policy);

【问题讨论】:

标签: node.js amazon-web-services amazon-s3


【解决方案1】:

高水平看起来还可以。我希望您知道 secret 不仅仅是一个字符串,它是您的 IAM 用户 accessKey/secretKey 对的 secretKey。

您想自己做而不使用 AWS 开发工具包有什么特别的原因吗?

还请查看以下适用于 AWS ElasticSearch 的示例签名实施(Java 中)。查看 getSignatureKey 和 calculateSignature 方法。

https://github.com/dy10/aws-elasticsearch-query-java/blob/master/src/main/java/dy/aws/es/AWSV4Auth.java

【讨论】:

    【解决方案2】:

    你应该使用这个库https://github.com/mhart/aws4 你需要使用result = aws4.sign({}, { cred from AWS })

    它会返回 result.headers ,它们是您需要在请求中发送的标头

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2012-05-01
      • 2018-02-10
      相关资源
      最近更新 更多