首页 > 代码库 > C# 实现rtsp Digest Authentication Response
C# 实现rtsp Digest Authentication Response
<pre name="code" class="csharp">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; namespace RTSP_Digest_Authentication { class Program { /// <summary> /// MD5 32位加密 /// </summary> /// <param name="str"></param> /// <returns></returns> static string md5(string str) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str); bytes = md5.ComputeHash(bytes); md5.Clear(); string ret = ""; for (int i = 0; i < bytes.Length; i++) { ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0');//补0 } return ret.PadLeft(32, '0'); //补0 } private static string computeDigestResponse(string username, string userpwd, string realm, string cmd, string nonce, string url) { // The "response" field is computed as: // md5(md5(<username>:<realm>:<password>):<nonce>:md5(<cmd>:<url>)) // or, if "fPasswordIsMD5" is True: // md5(<password>:<nonce>:md5(<cmd>:<url>)) string ha1 = md5(username + ":" + realm + ":" + userpwd); string ha2 = md5(cmd + ":" + url); string response = md5(ha1 + ":" + nonce + ":" + ha2); return response; } static void Main(string[] args) { string username = "root"; string userpwd = "admin"; string realm = "Operator"; string cmd = "DESCRIBE"; string nonce = "3983eb84382ba9811726fc1c2e7fb8be"; string url = "rtsp://root:admin@192.168.10.24:554/profile1=r"; string response = computeDigestResponse(username, userpwd, realm, cmd, nonce, url); Console.WriteLine(response); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。