from:http://blog.csdn.net/machh/article/details/52121648
Rtsp认证主要分为两种:
基本认证(basic authentication)和摘要认证( digest authentication )。
基本认证是http 1.0提出的认证方案,其消息传输不经过加密转换因此存在严重的安全隐患。
摘要认证是http 1.1提出的基本认证的替代方案,其消息经过MD5哈希转换因此具有更高的安全性。下面主要介绍摘要认证:

1.基本认证 (basic 认证)

1.  客户端发送DESCRIBE请求到服务端,

  1. DESCRIBE  rtsp://192.168.1.55:554/11
  2. RTSP/1.0\r\n
  3. CSeq: 1\r\n
  4. Accept: application/sdp\r\n
  5. User-agent: Realplayer\r\n\r\n

2:RTSP服务端认为没有通过认证,发出WWW-Authenticate认证响应

RTSP/1.0 401 Unauthorized\r\n
CSeq: 1\r\n
WWW-Authenticate: Basic realm="RTSPD"\r\n\r\n

此时客户端程序应该如果弹出密码认证窗口 ,提示用户名,输入认证信息,密码认证窗口

从响应消息中进行判断,如果发现是Basic 认证,按如下方式处理

步骤3:客户端携带Authorization串再次发出DESCRIBE请求

DESCRIBE rtsp://192.168.1.55:554/live/1/video.sdp?token=A00453FR805a54C8
RTSP/1.0\r\n
CSeq: 2\r\n
Accept: application/sdp\r\n
User-Agent: RealMedia Player HelixDNAClient/12.0.1.647 (win32)\r\n
Authorization: Basic YWRtaW46YWRtaW4=\r\n\r\n
其中“YWRtaW46YWRtaW4=”是通过对 username:password 进行base64编码所得
参考代码:
[cpp] view plaincopy print?
  1. char sztemp[64] = {0};
  2. sprintf( sztemp, "%s:%s", m_szAuthorName, m_szPwd); //"admin","admin" );  //
  3. string strOutBase64;
  4. BaseEncoder::Base64Encode( (BYTE*)sztemp, strlen(sztemp),&strOutBase64 );


2. 摘要认证 Digest authentication

1.客户端发送DESCRIBE请求

DESCRIBE rtsp://192.168.123.158:554/11 RTSP/1.0

CSeq: 2

User-Agent: LibVLC/2.0.5(LIVE555 Streaming Media v2012.09.13)

Accept: application/sdp

服务器端返回401错误,提示未认证并以nonce质询:

RTSP/1.0 401 Unauthorized

Server: HiIpcam/V100R003 VodServer/1.0.0

Cseq: 2

WWW-Authenticate:Digest  realm="HipcamRealServer", nonce="3b27a446bfa49b0c48c3edb83139543d"

2.客户端以用户名,密码,nonce,HTTP方法,请求的URI等信息为基础产生response信息进行反馈

DESCRIBE rtsp://192.168.123.158:554/11 RTSP/1.0

CSeq: 3

Authorization: Digest username="admin",realm="Hipcam RealServer", nonce="3b27a446bfa49b0c48c3edb83139543d",uri="rtsp://192.168.123.158:554/11", response="258af9d739589e615f711838a0ff8c58"

User-Agent: LibVLC/2.0.5(LIVE555 Streaming Media v2016.06.13)

Accept: application/sdp

服务器对客户端反馈的response进行校验,通过则返回如下字段:

RTSP/1.0 200 OK

Server: HiIpcam/V100R003 VodServer/1.0.0

Cseq: 3

Content-Type: application/sdp

Cache-Control: must-revalidate

Content-length: 306

Content-Base: rtsp://192.168.123.158:554/11/

v=0

o=StreamingServer 3331435948 1116907222000 IN IP4192.168.123.158

s=\11

c=IN IP4 0.0.0.0

b=AS:1032

t=0 0

a=control:*

m=video 0 RTP/AVP 96

b=AS:1024

a=control:trackID=0

a=rtpmap:96 H264/90000

a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0LgHtoCgPRA,aM4wpIA=

a=framesize:96 640-480

说明:

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字段,同样在服务器端校验时也默认采取同样的计算方法。

本文为《流媒体开发实战进阶---rtsp视频播放器》视频课程,第一章第二节配套讲义,

更多内容请收看视频讲解!

http://edu.csdn.net/course/detail/2744

流媒体传输协议详解之---RTSP认证相关推荐

  1. Dubbo远程传输协议详解

    前言 上次小编为大家带来了Dubbo调用及容错机制详解,不知道大家有没有去看小编最后留下的问题,欢迎对文章进行评论也希望大家和小编多多交流.今天接着为大家带来Dubbo的内容,传输协议,上次调用机制中 ...

  2. A2DP-Link传输协议详解以及实例龙讯LT947LMT/LT948D简介

    要了解A2DP-lINK传输协议,首先得了解有哪几部分组成,这里简单将协议分为两大类!主要讲四个点. 一:A2DPD整体性协议结构: A2DP-LINK全称:(Automotive Dualstrea ...

  3. HTTP超文本传输协议详解

    1.引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/ ...

  4. FTP文件传输协议详解

    简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器. 需要通过控制连接20端口来控制双方的通信 需要通过数据连接21端口来进行双方的通信 主动模式:最大的特点是数据连接由服务器的20端口主动 ...

  5. HTTP传输协议详解(传输过程及数据格式详细)

    一. 知其意: 1. HTTP协议的概念:Hyper Text Transfer Protocol 超文本传输协议,定义了客户端与服务器端通信时,发送数据的格式. 2.HTTP协议的特点 1.基于TC ...

  6. Http-超文本传输协议-详解

    一.HTTP基本概念 1.1.Http是什么? HTTP是 超文本传输协议 分为三个部分 超文本 它就是超越了普通文本的文本,它是文字.图片.视频等的混合体,最关键有超链接,能从一个超文本跳转到另外一 ...

  7. 最详细的流媒体传输协议-rtsp协议详解

    流媒体传输协议-rtsp协议详解 参阅:RTSP协议详解和分析从零开始写一个RTSP服务器(一)RTSP协议讲解关于RTSP_RTP_RTCP协议的深刻初步介绍 rtsp RTSP出现以前,最热的大概 ...

  8. RTSP协议详解(转载)

    流媒体传输协议介绍 一.RTSP协议介绍 什么是rtsp? RTSP协议以客户服务器方式工作,,如:暂停/继续.后退.前进等.它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进 ...

  9. RTSP、HTTP、HTTPS、SDP四种协议详解

    RTSP.HTTP.HTTPS.SDP四种协议详解 从这篇开始我们将进入流媒体的环节,流媒体在android中有nuplayer来实现的,在开始讲解android流媒体前,我们先来讲讲流媒体传输协议, ...

最新文章

  1. 科目二倒车入库不论怎么都能入进去的方法
  2. 增加SYSTE表空间数据文件
  3. 【Thymeleaf】获取绝对路径
  4. 用于.NET Core的ORM
  5. excel进度条与百分比不符_Excel项目管理模板V2.0
  6. Linux(debian7)操作基础(三)之PCI/PCI-E设备配置空间
  7. 丰胸神器?网友曝椰树椰汁新广告低俗 疑似虚假宣传被调查...
  8. QT信号(signal)和槽(slot)问题
  9. windows自动设置ip地址脚本
  10. IIS日志存入数据库之二:ETW
  11. matlab2016a最新安装教程
  12. SPSS基础教程:SPSS统计分析基础
  13. 左手云通讯,右手AI,容联为何能成为云联络中心“风向标”?
  14. 梦想易语言零基础注册机到多线程教程
  15. 安装ie9提示未能完成安装_win10系统安装iE提示“internet Explorer未能完成安装”的方法介绍...
  16. CDA LEVEL 1 考试,知识点《机器学习基本概念》
  17. 射频识别系统及WMS仓库管理系统功能介绍
  18. 洛谷B2058 奥运奖牌计数
  19. oracle sql 动态参数,sql – 具有动态参数的Oracle Lag函数
  20. 利用ipv6技术,废旧笔记本变成server

热门文章

  1. mysql5.0 mac_Mac OS X下MySQL 5.0的默认连接数
  2. python将十进制转为二进制_如何用Python将十进制数字转为二进制,以及将二进制转为十六进制?...
  3. redis的bitmap操作
  4. pytorch 卷积
  5. shell test
  6. landset8各波段_landsat8波段
  7. 华为手机设置页面黑色_华为手机设置里面的这些功能你都知道吗?
  8. VMware vSAN 技术详解 | 周末送资料
  9. Exchange Server 2016 独立部署/共存部署 (四)—— 配置DAG(上)
  10. esxi存储(外部共享存储)- Open FIle