Python请求-HTTPDigest:在摘要授权中将哈希算法设置为SHA-512

Python请求-HTTPDigest:在摘要授权中将哈希算法设置为SHA-512,python,python-requests,digest-authentication,Python,Python Requests,Digest Authentication,我正在尝试编写一个小型Python函数来连接一个使用HTTP摘要授权和SHA-512算法的站点。 我试图实现这一目标的代码是: headers = { 'Content-Type': 'application/json', 'Encoding': 'utf-8', } s = requests.Session() s.headers.update(headers) s.auth = HTTPDigestAuth(self.username, self.passw) r =

我正在尝试编写一个小型Python函数来连接一个使用HTTP摘要授权和SHA-512算法的站点。 我试图实现这一目标的代码是:

headers = {
     'Content-Type': 'application/json',
     'Encoding': 'utf-8',
}

s = requests.Session()
s.headers.update(headers)
s.auth = HTTPDigestAuth(self.username, self.passw)

r = requests.Request(
     url=self.api_url,
     method='POST',
     json=data
)

prepped = s.prepare_request(r)
r = s.send(prepped)
问题是我得到了401作为回应。我能够验证用户名/密码/地址参数,并且它们是正确的,如果我“破解”授权头以包含SHA-512编码的 值,然后我得到一个502错误(这有点正确,因为消息的其余部分将不正确)


如果我正确阅读了代码,HTTPDigestAuth使用的基本哈希算法是MD5。我找不到的是一种方法来改变它的SHA-512,即使它在技术上也支持。谁能帮我一下吗?这让我抓狂。

事实证明,尽管文档中说服务器正在使用摘要身份验证,但他们无法实现这一点,只需要在POST数据中传递用户名和密码字段。502错误是由于身份验证服务器在尝试分析授权标头时崩溃造成的,因为未实现该处理程序


从某种程度上来说,案例已经结束。

证明,尽管文档中说服务器正在使用摘要身份验证,但他们无法实现这一点,只需要在POST数据中传递用户名和密码字段。502错误是由于身份验证服务器在尝试分析授权标头时崩溃造成的,因为未实现该处理程序


从某种意义上说,案例已经结束。

我认为请求希望从服务器发送的
www-authenticate
头中获取算法,因此该过程在客户端是不透明的。但我不是专家……同时我也得出了同样的结论。显然,服务器不符合RFC2617(奇怪的是,它是一个普通的ASP.NET web服务),因此在这种情况下请求不能帮助我。就我所见,我有两个选择来实现这一点:-使用pyCurl手动完成所有工作(大量工作,但应该可以工作)-手动计算散列,并在与服务器通信时使用散列。我认为请求希望从服务器发送的
www authenticate
头中获取算法,因此,从客户端来看,流程是不透明的。但我不是专家……同时我也得出了同样的结论。显然,服务器不符合RFC2617(奇怪的是,它是一个普通的ASP.NET web服务),因此在这种情况下请求不能帮助我。就我所见,我有两个选项来实现这一点:-使用pyCurl手动使一切工作(很多工作,但应该可以工作)-手动计算哈希,并在与服务器通信时使用它