【发布时间】:2017-10-02 09:10:19
【问题描述】:
我已从节点 4 移动到节点 6,这导致使用 aws-sdk 的任何操作返回以下错误消息:
SignatureDoesNotMatch:我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。
查看代码,这似乎是由我的代码调用加密来创建和验证哈希和集合引起的
crypto.DEFAULT_ENCODING = 'binary'
如果我将它从“二进制”更改为“缓冲区”(这是默认设置),aws-sdk 可以工作,但我的代码无法验证旧哈希。
这是用于创建和检查哈希的代码:
crypto.pbkdf2(password, salt, iterations, keysize, function (err, derivedKey) {
callback(null, [salt.toString('base64'), new Buffer(derivedKey).toString('base64')])
});
查看crypto.DEFAULT_ENCODING 的加密文档,我不确定使用缓冲区和二进制文件之间有什么区别。
有没有办法只对这种加密方法使用二进制编码而不影响 aws-sdk ?
如果没有,有没有办法将 pbkdf2 使用“缓冲区”编码生成的哈希转换为使用“二进制”编码时会生成的哈希?
【问题讨论】:
标签: node.js hash aws-sdk cryptojs