1

мне нужно проверить подлинность моего RTSP поток на сервер потоковой передачи, вот проблема:RTSP Authentication: дайджест вопрос

RTSP/1.0 401 Unauthorized 
WWW-Authenticate: Digest realm="Streaming Server", nonce="76bfe6986d3e766424de9bd6e7d3ccc1" 
Session: 1845562184;timeout=60 
Cseq: 1 
... 

Wirecast удалось успешно пройти проверку подлинности с этими настройками:

Host name : 192.168.33.9:1935/live/my_stream.sdp 
location : live/my_stream.sdp 
username : user 
password : test 

его ответ is: e1dff363b9763df0c7615429af79715c

Так что согласно wikipedia Я пытался пройти аутентификацию по методу:

//H(data) = MD5(data) 
//KD(secret, data) = H(secret:data) 
//A1 = username:realm:password 
//A2 = http-method:uri 
//response = KD(H(A1), nonce:H(A2)) 

HA1 = md5("user:Streaming Server:test") 
HA2 = md5("POST:live/my_stream.sdp") 
RESPONSE = md5(HA1+":"+nonce+":"+HA2) 

, но с этим кодом я получаю ответ «0963c3a7b1481523f809e6affa7e792e» и 401 Несанкционированное

Можете ли вы мне помочь?

ответ

0

Предположим, что ваш метод дайджеста штраф вы можете попытаться ответить с этими параметрами:

Authorization: Digest 
username="user", 
realm="Streaming Server", 
nonce="76bfe6986d3e766424de9bd6e7d3ccc1", 
uri="rtsp://192.168.33.9:1935/live/my_stream.sdp", 
+0

Это определенно неправильно, потому что в нем нет расчетного хэша 'response'. – Matyas

+0

Также uri должен быть localpath, который в этом случае «/live/my_stream.sdp» – Matyas

0

Расчет ответ должен быть:

HA1 = md5("user:Streaming Server:test") 
HA2 = md5("DESCRIBE:/live/my_stream.sdp") 
RESPONSE = md5(HA1+":"+nonce+":"+HA2) 

И полную строку аутентификации:

Authorization: Digest 
username="user", 
algorithm="MD5", 
realm="Streaming Server", 
nonce="76bfe6986d3e766424de9bd6e7d3ccc1", 
uri="/live/my_stream.sdp", 
response="de73283590f7ad76929d20f0d06e914b"