You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python requests库使用MD5进行HTTP摘要认证?

强制Python requests使用MD5进行HTTP摘要认证

requests库的HTTPDigestAuth默认会优先选择服务器声明支持的最强哈希算法(比如SHA256),要强制改用MD5,你可以通过自定义认证类覆盖默认的算法选择逻辑:

实现步骤

  • 继承requests.auth.HTTPDigestAuth类
  • 重写_choose_digest方法,固定返回MD5算法
  • 使用自定义认证类发起请求

示例代码

import requests
from requests.auth import HTTPDigestAuth

class MD5DigestAuth(HTTPDigestAuth):
    def _choose_digest(self, auth_header):
        # 忽略服务器提供的其他算法,强制选择MD5
        return 'MD5'

# 替换为你的目标服务器地址、用户名和密码
url = "你的服务器URL"
response = requests.get(url, auth=MD5DigestAuth('你的用户名', '你的密码'))

# 查看请求结果
print(response.status_code)
print(response.text)

原理说明

HTTPDigestAuth的_choose_digest方法原本会从服务器返回的WWW-Authenticate头中挑选优先级最高的哈希算法,自定义子类重写该方法后,直接指定使用MD5,绕过默认的算法选择逻辑,适配存在SHA256兼容bug的服务器。

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:51:03