Tag: http signature

将Nodejs签名散列函数转换为Python

我试图连接到只有Nodejs文档的API,但是我需要使用Python。 官方文档声明hhtp请求需要像这样签名,只给出这个代码: var pk = "…. your private key …."; var data = JSON.strigify( {some JSON object} ); var signature = crypto.createSign('RSA-SHA256').update(data).sign(pk, 'base64'); 到目前为止,我被封锁在那里: from Crypto.PublicKey import RSA from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash import SHA256 import base64 private_key_loc='D:\\api_key' BODY={ some JSON } data=json.dumps(BODY) def sign_data(private_key_loc, data): key = open(private_key_loc, "r").read() rsakey = RSA.importKey(key,passphrase='c9dweQ393Ftg') signer […]

在HTTP签名中,我应该使用“请求行”还是“目标请求”?

我正在查看Readme.md作为Joyent的node-http-signature模块的一部分,它使用“特殊名称”将HTTP请求目标包含到签名库中: 要在签名计算中包含HTTP请求行,请使用特殊的请求行值。 虽然这在HTTP语言中重载了标题的定义,但是在RFC 2616中定义了请求行,并且在有用的签名计算中作为标题的exception值,简单地使用请求行比单独添加一个单独的参数更简单它。 包括request-line意味着包括POST /url/path/here HTTP/1.1文本到签名库。 相反,规范03草案说,使用不同的“特殊价值”来包含要求的目标: 如果头域名称是(request-target)则通过连接小写:方法,ASCII空间和:path伪头文件来生成头域值 是的,(请求 – 目标)在parens。 对于前者,请求的签名基础可能如下所示: POST /foo HTTP/1.1 + "\n" date: Tue, 07 Jun 2011 20:51:35 GMT + "\n" content-type: application/json + "\n" content-md5: h0auK8hnYJKmHTLhKtMTkQ== 而对于后者,同一请求的签名基础将如下所示: (request-target): POST /foo + "\n" date: Tue, 07 Jun 2011 20:51:35 GMT + "\n" content-type: application/json + "\n" content-md5: h0auK8hnYJKmHTLhKtMTkQ== 那么哪个是权威? […]