这是一条真实的rtsp通信抓包过程

OPTIONS rtsp://192.168.0.46:554/streaming/channels/stream1 RTSP/1.0
CSeq: 2
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)RTSP/1.0 200 OK
CSeq: 2
Date: Sat, May 18 2019 12:32:05 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSEDESCRIBE rtsp://192.168.0.46:554/streaming/channels/stream1 RTSP/1.0
CSeq: 3
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)
Accept: application/sdpRTSP/1.0 401 Unauthorized
CSeq: 3
Date: Sat, May 18 2019 12:32:05 GMT
WWW-Authenticate: Digest realm="G4 IPC Living Stream", nonce="8d13534a7a77b1fe49b80cebf22c4adc"DESCRIBE rtsp://192.168.0.46:554/streaming/channels/stream1 RTSP/1.0
CSeq: 4
Authorization: Digest username="admin", realm="G4 IPC Living Stream", nonce="8d13534a7a77b1fe49b80cebf22c4adc", uri="rtsp://192.168.0.46:554/streaming/channels/stream1", response="d9db3ce61bbc983010a6b5805080711e"
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)
Accept: application/sdpRTSP/1.0 200 OK
CSeq: 4
Date: Sat, May 18 2019 12:32:05 GMT
Content-Base: rtsp://192.168.0.46/streaming/channels/stream1/
Content-Type: application/sdp
Content-Length: 554v=0
o=- 1558173732855598 1 IN IP4 192.168.0.46
s=IChinaE IPC Camera Stream
i=stream1
t=0 0
a=tool:LIVE555 Streaming Media v2010.07.29
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:IChinaE IPC Camera Stream
a=x-qt-text-inf:stream1
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:12000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64002A;sprop-parameter-sets=Z2QAKq2EAQwgCGEAQwgCGEAQwgCEO1A8ARPyzcBAQECAAAAAAQ==,aO48sA==
a=control:track1
m=audio 0 RTP/AVP 0
c=IN IP4 0.0.0.0
b=AS:64
a=control:track2
SETUP rtsp://192.168.0.46/streaming/channels/stream1/track1 RTSP/1.0
CSeq: 5
Authorization: Digest username="admin", realm="G4 IPC Living Stream", nonce="8d13534a7a77b1fe49b80cebf22c4adc", uri="rtsp://192.168.0.46/streaming/channels/stream1/", response="646bf6cf6a6104d8c1f5ae15e0d7d3d6"
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)
Transport: RTP/AVP;unicast;client_port=50742-50743RTSP/1.0 200 OK
CSeq: 5
Date: Sat, May 18 2019 12:32:05 GMT
Transport: RTP/AVP;unicast;destination=192.168.0.45;source=192.168.0.46;client_port=50742-50743;server_port=6970-6971
Session: 2784681ASETUP rtsp://192.168.0.46/streaming/channels/stream1/track2 RTSP/1.0
CSeq: 6
Authorization: Digest username="admin", realm="G4 IPC Living Stream", nonce="8d13534a7a77b1fe49b80cebf22c4adc", uri="rtsp://192.168.0.46/streaming/channels/stream1/", response="646bf6cf6a6104d8c1f5ae15e0d7d3d6"
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)
Transport: RTP/AVP;unicast;client_port=50744-50745
Session: 2784681ARTSP/1.0 200 OK
CSeq: 6
Date: Sat, May 18 2019 12:32:05 GMT
Transport: RTP/AVP;unicast;destination=192.168.0.45;source=192.168.0.46;client_port=50744-50745;server_port=6972-6973
Session: 2784681APLAY rtsp://192.168.0.46/streaming/channels/stream1/ RTSP/1.0
CSeq: 7
Authorization: Digest username="admin", realm="G4 IPC Living Stream", nonce="8d13534a7a77b1fe49b80cebf22c4adc", uri="rtsp://192.168.0.46/streaming/channels/stream1/", response="3c608bdf58da34b663ca237d0c20678d"
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25)
Session: 2784681A
Range: npt=0.000-RTSP/1.0 200 OK
CSeq: 7
Date: Sat, May 18 2019 12:32:05 GMT
Range: npt=0.000-
Session: 2784681A
RTP-Info: url=rtsp://192.168.0.46/streaming/channels/stream1/track1;seq=3834;rtptime=1944096025,url=rtsp://192.168.0.46/streaming/channels/stream1/track2;seq=8557;rtptime=1537152872

response字段的计算

RTSP客户端应该使用username + password并计算response如下:

(1)当password为MD5编码,则

response = md5(password:nonce:md5(public_method:url));

(2)当password为ANSI字符串,则

response= md5(md5(username:realm:password):nonce:md5(public_method:url));

客户端在每次发起不同的请求方法时都需要计算response字段,同样在服务器端校验时也默认采取同样的计算方法。

以Cseq为3时的消息举例

C->S发DISCRIBE消息,由于没发username,nonce,uri,response
这些鉴权需要的东西,所以,S->C返回一个401

Cseq为4时,C->S发DISCRIBE消息,发了所有的鉴权消息,根据上边第二个的公式,计算出response应该是多少,然后和收到的response对比,一样,则证明password正确,否则失败

转自:https://blog.csdn.net/wtbee/article/details/9001859

rtsp的鉴权MD5验证相关推荐

  1. 公共平台API鉴权安全验证

    api使用签名+时间戳鉴权 请求api接口格式:/api/testserver?appid=xxx&sign=12AA12SD123SD1DSSA&timestamp=15113329 ...

  2. MilenageTest 4G/5G鉴权值验证工具的使用

    来源:https://github.com/jimtangshfx/MilenageTest 一次偶然看玄武实验室的每日安全动态推送,看到了这个工具,感觉非常实用,特别是在调试UE鉴权过程代码时.这个 ...

  3. RTSP向ZLM流媒体服务器的推流和拉流鉴权

    文章目录 前言 一.HTTP Hook 二.向ZLM推流鉴权 三.向ZLM拉流 四.参考 前言 本篇博客的测试环境: Windows 10 + Qt 5.12.2 MSVC. 由于项目中使用了RTSP ...

  4. 微服务网关限流鉴权-wei-fu-wu-wang-guan-xian-liu--jian-quan

    title: 微服务网关限流&鉴权 date: 2022-01-06 14:40:45.047 updated: 2022-01-06 14:40:45.047 url: https://ww ...

  5. 微服务网关鉴权:gateway使用、网关限流使用、用户密码加密、JWT鉴权

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  6. 微服务网关鉴权——gateway使用、网关限流使用、用户密码加密、JWT鉴权

    文章目录 微服务网关鉴权 课程目标 1.微服务网关Gateway 1.1 微服务网关概述 1.2 微服务网关微服务搭建 1.3 微服务网关跨域 1.4 微服务网关过滤器 2 网关限流 2.1 思路分析 ...

  7. 微服务网关鉴权:gateway使用、网关限流使用 用户密码加密 JWT鉴权

    目标 掌握微服务网关Gateway的系统搭建 掌握网关限流的实现 能够使用BCrypt实现对密码的加密与验证 了解加密算法 能够使用JWT实现微服务鉴权 1.微服务网关Gateway 1.1 微服务网 ...

  8. SpringCloud:Gateway之鉴权

    一.JWT 实现微服务鉴权 JWT一般用于实现单点登录.单点登录:如腾讯下的游戏有很多,包括lol,飞车等,在qq游戏对战平台上登录一次,然后这些不同的平台都可以直接登陆进去了,这就是单点登录的使用场 ...

  9. python接口自动化22-签名(signature)鉴权(authentication)之加密(HEX、MD5、HMAC-SHA256)...

    前言 开放的接口为了避免被别人乱调用,浪费服务器资源,这就涉及到签名(Signature)加密了 API 使用签名方法(Signature)对接口进行鉴权(Authentication).每一次请求都 ...

最新文章

  1. Confluence 6 创建小组的公众空间
  2. HDU 3033 I love sneakers! (分组背包变形)
  3. Ajax中请求被缓存的问题
  4. 生成器和生成器表达式
  5. socket 通信关于bind那点事
  6. 使用poi统计工作职责
  7. iphone已停用怎么解锁_iPhone 已停用怎么办?使用锁屏密码需要注意
  8. 前端调试你还在console.log吗,那你就out, debugger那么好用,你都不用呀
  9. Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式
  10. 初学Web 前端感受
  11. shell获取当前目录名的几种方法
  12. python如何可视化编辑gui_python gui,python可视化窗口编程
  13. 华为27asph是什么型号_华为官宣新增P40 Pro+等27款机型支持换原装电池,有你的手机吗?...
  14. Android Framework 电源子系统(05)核心方法updatePowerStateLocked分析-3 更新屏保  发送通知  更新wakelock
  15. 【水滴云|热点】个人信息安全有法可依,海量数据用IPFS存储
  16. 硬核!解密四向穿梭车智能化密集存储技术
  17. 软件测试之因果图分析
  18. 电影评分数据集的分析
  19. 等级保护、风险评估和安全测评分别是什么?
  20. Linux命令date 日期时间和Unix时间戳互转

热门文章

  1. 爱奇艺自动播放代码制作
  2. Python+Flask实现股价查询系统。Python绘制股票k线走势
  3. C语言数组练习-查找整数
  4. 重连通图及重连通分量
  5. js怎么定义combobox_jQuery EasyUI -ComboBox(下拉列表框)
  6. Python海龟绘图螺旋线
  7. 【Codeforces Round #532 (Div. 2) F. Ivan and Burgers】离线+线性基
  8. 以颤抖之身追赶 怀敬畏之心挑战
  9. 加密解密工具类(Java,DES)
  10. 修改授时服务器地址,win10设置网络授时服务器地址