Javascript 在aws lambda中运行时加密验证签名失败
我正在使用nodejs crypto生成一对不对称密钥,并使用sign和verify进行api调用。当我在本地运行代码时(生成密钥、创建签名,然后使用传入的签名触发api函数),它会传递验证函数。然而,一旦它被放在aws云上并作为lambda运行,它每次都无法通过验证。我通过一个对无服务器api的postman请求生成密钥,该api触发我的create keys lambda,然后在本地运行签名创建,然后通过postman向端点发送一个带有签名的请求,端点应该对其进行验证 下面是我如何生成签名的Javascript 在aws lambda中运行时加密验证签名失败,javascript,aws-lambda,cryptojs,Javascript,Aws Lambda,Cryptojs,我正在使用nodejs crypto生成一对不对称密钥,并使用sign和verify进行api调用。当我在本地运行代码时(生成密钥、创建签名,然后使用传入的签名触发api函数),它会传递验证函数。然而,一旦它被放在aws云上并作为lambda运行,它每次都无法通过验证。我通过一个对无服务器api的postman请求生成密钥,该api触发我的create keys lambda,然后在本地运行签名创建,然后通过postman向端点发送一个带有签名的请求,端点应该对其进行验证 下面是我如何生成签名的
const sign = crypto.createSign('SHA256');
sign.update(Buffer.from(JSON.stringify(data)));
sign.end();
const signature = sign.sign(Buffer.from(privateKey), 'base64')
return signature;
以下是验证:
let verifier = crypto.createVerify(
"sha256"
);
verifier.update(Buffer.from(JSON.stringify(data)));
verifier.end();
//verify signature
const verified = verifier.verify(publicKey, signature, 'base64')
传入的数据是一个包含nonce、timestamp和uuid的对象
我似乎看不出我错在哪里,任何见解都会有帮助