GAT1399协议分析(三)--认证加密

一、参考GAT1400文档,认证协议为

上接上回:

认证时候,视图库返回认证信息:

WWW-Authenticate: Digest realm="12312312315031231231", nonce="zWq5D1nFFUa71Ni9", opaque="BSTjT6ow+VLrnu4k", algorithm=MD5, qop="auth"

再次注册时候注册里面的认证信息:

Authorization: Digest username="34078100001190001002", realm="12312312315031231231", nonce="zWq5D1nFFUa71Ni9", uri="/VIID/System/Register", algorithm="MD5", qop=auth, nc=00000001, cnonce="0a4f113b", response="72ad0bd84ec2ff10acf0c310b3beab16", opaque="BSTjT6ow+VLrnu4k"

需要计算的值:response

加密算法:response= MD5(HA1:nonce:nc:cnonce:qop:HA2)

HA1=MD5(username:realm:password)

HA2=MD5(method:uri)

其中password为admin

python代码展示下具体计算过程:

import hashlib

username = '34078100001190001002'
realm = '12312312315031231231'
password = 'admin'

md5_ha1 = hashlib.md5()
s_HA1 = username + ':' + realm + ':' + password
md5_ha1.update(s_HA1.encode('utf-8'))
HA1 = md5_ha1.hexdigest()

print('ha1:',HA1)

method = 'POST'
uri = '/VIID/System/Register'
md5_ha2 = hashlib.md5()
s_HA2 = method + ':' + uri
md5_ha2.update(s_HA2.encode('utf-8'))
HA2 = md5_ha2.hexdigest()

print('ha2:', HA2)

nonce = 'zWq5D1nFFUa71Ni9'
nc = '00000001'
cnonce = '0a4f113b'
qop = 'auth'
md5_ha3 = hashlib.md5()
s_HA3 = HA1 + ':' + nonce + ':' + nc + ':' +cnonce + ':' + qop + ':' + HA2
md5_ha3.update(s_HA3.encode('utf-8'))
HA3 = md5_ha3.hexdigest()

print('response:', HA3)

计算结果展示:

ha1: 2626be6580dccd768a379a5aba06a85a
ha2: e981db7569f065fda647d8236af6f901
response: 72ad0bd84ec2ff10acf0c310b3beab16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值