Python中文
首页
教程
问答
标签
搜索
登录
注册
无法解释RTSP身份验证(基本和摘要)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在前面为那篇长文章道歉。寻找任何洞察和帮助。。。</p> <p>所以我试图用python编写一个简单的rtsp身份验证磨床。在一次测试中,我在一个(摄像机)上遇到了一个rtsp端口,当我访问它时,我得到了:</p> <pre><code>Received, 'RTSP/1.0 401 Unauthorized\r\n CSeq: 1\r\n Session: 645252166;timeout=60\r\n WWW-Authenticate: Digest realm="4419b63f5e51", nonce="8b84a3b789283a8bea8da7fa7d41f08b", stale="FALSE"\r\n WWW-Authenticate: Basic realm="4419b63f5e51"\r\nDate: Sat, Aug 16 2014 02:22:28 GMT\r\n\r\n', </code></pre> <p>如您所见,响应似乎表明连接同时支持基本身份验证和摘要身份验证。所以我先试试基本功。我生成了以下消息并将其发送:</p> <pre><code>SETUP rtsp://192.168.201.113 RTSP/1.0 CSeq: 1 Transport: RTP/AVP;unicast;client_port 4588-4589 Authorization: Basic YWRtaW46NDQxOWI2M2Y1ZTUxOjEyMzQ= User-Agent: VLC media player (LIVE555 Streaming Media v2010.02.10) </code></pre> <p>其中,我base64编码了“user:password”,并得出“YWRtaW46NDQxOWI2M2Y1ZTUxOjEyMzQ=”。</p> <p>这再次击退了401未经授权的错误。</p> <p>所以我抽出VLC并尝试连接,只是为了确保cred实际工作,然后在VLC连接字符串中输入:</p> <p>rtsp://user:pass@:554</p> <p>很有魅力!</p> <p>所以我启动了wireshark,看看它在做什么,观察交通状况。vlc使用摘要式身份验证,而不是基本身份验证。</p> <p>所以,第一个问题是,基本身份验证是否适用于RTSP,还是对我撒谎?如果是这样的话,我缺什么才能让它工作呢?</p> <p>对我所知有效。所以我尝试构建基于摘要的身份验证。首先我需要弄清楚的是,在阅读了几个关于摘要式身份验证的站点之后,它使用的参数是。从401的回答中我得到的只有:</p> <ol> <li>领域</li> <li>nonce公司</li> </ol> <p>我没有任何qop,在出站VLC消息中也看不到cnonce。我假设我们使用摘要式身份验证的基本形式,其中:</p> <pre><code>H(A1) = MD5(user:realm:pass) H(A2) = MD5(method:digestURI) response = MD5(H(A1):nonce:H(A2) </code></pre> <p>我的具体价值观是:</p> <pre><code>H(A1) = MD5(admin:4419b63f5e51:1234) = d43b7f7d7f627da1aded72517f2a3c6c H(A2) = MD5(DESCRIBE:rtsp://192.168.201.113) = a7c212739387f1550970752dc7a17fa2 response = MD5(d43b7f7d7f627da1aded72517f2a3c6c:57fa10a142d6c1f9e3dfabccc3ba045d:a7c212739387f1550970752dc7a17fa2) = 33477d22629eb37a6fc2d3435f03eb81 </code></pre> <p>VLC发送的特定响应是:</p> <p>0bde767876cbe8e6a6dfbba3c62c6db1</p> <p>啊!=33477d22629eb37a6fc2d3435f03eb81</p> <p>它们不匹配??</p> <p>没有合适的信息来执行其他形式的摘要身份验证,那么这里发生了什么?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>某些相机制造商不支持基本身份验证。例如,Axis在最近的版本中已经取消了对它的支持。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何替换子字符串,但前提是它正好出现在两个单词之间
4 回答
如何替换字典中所有出现的指定字符
5 回答
如何替换字典中所有键的第一个字符?
5 回答
如何替换字典所有键中的子字符串
6 回答
如何替换字符串python中的变量值?
5 回答
如何替换字符串Python中的第二次迭代
10 回答
如何替换字符串y Python中不等于字符串x的所有内容?
9 回答
如何替换字符串中出现的第n个单词?
7 回答
如何替换字符串中单词的一部分
7 回答
如何替换字符串中同时出现的2个或更多特殊字符或下划线
7 回答
如何替换字符串中指定位置(索引)的字符?
3 回答
如何替换字符串中某个字符的所有匹配项?
10 回答
如何替换字符串中的
3 回答
如何替换字符串中的一个字符
4 回答
如何替换字符串中的主题(固定位置)
8 回答
如何替换字符串中的分隔逗号?
9 回答
如何替换字符串中的列名(python)?
9 回答
如何替换字符串中的制表符?
10 回答
如何替换字符串中的单个单词而不是用相同的字符替换其他单词
9 回答
如何替换字符串中的单个字符?
7 回答