digest 用户认证 response生成算法

response计算过程:
1.  HA1=MD5(A1)=MD5(username:realm:password)  

2. a. 如果 qop 值为“auth”或未指定 : HA2=MD5(A2)=MD5(method:uri)  
   b. 如果 qop 值为“auth-int"     : HA2=MD5(A2)=MD5(method:uri:MD5(entity-body))
 
3. a.如果 qop 值为“auth”或“auth-int" : response=MD5(HA1:nonce:nc:cnonce:qop:HA2)
   b.如果 qop 未指定                 : response=MD5(HA1:nonce:HA2)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
axios是一个基于Promise的HTTP客户端,可以用于发送网络请求。它支持多种认证方式,包括基本认证、摘要认证等。 在使用axios进行digest认证时,需要先配置axios的请求头Authorization字段。在每个请求中,将用户名、密码进行摘要算法处理,然后放入请求头Authorization字段中,以完成digest认证。 以下是使用axios进行digest认证的步骤: 1. 导入axios库,并创建一个axios实例: ```javascript import axios from 'axios'; const instance = axios.create({ // 配置其他axios参数 }); ``` 2. 添加请求拦截器: ```javascript instance.interceptors.request.use( (config) => { // 在请求前对config进行处理 const username = 'your_username'; const password = 'your_password'; const auth = 'Digest ' + btoa(username + ':' + password); config.headers.Authorization = auth; return config; }, (error) => { return Promise.reject(error); } ); ``` 3. 发送请求: ```javascript instance .get('your_url') .then((response) => { // 处理响应成功的情况 console.log(response.data); }) .catch((error) => { // 处理响应失败的情况 console.error(error); }); ``` 在请求拦截器中,我们使用了btoa函数对用户名和密码进行Base64编码,然后将其拼接为“Digest 用户名:密码”的形式。最后将编码后的字符串添加到请求头Authorization字段中。 通过以上步骤,我们可以使用axios进行digest认证,发送带有认证信息的请求。当然,在实际应用中,需要根据具体的后端要求和网络环境进行详细配置和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值