温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

迅雷,快车,旋风链接编码解码C#源代码

发布时间:2020-07-11 20:33:33 来源:网络 阅读:1225 作者:hhd916 栏目:编程语言

这篇是我之前做项目时用到的,写了个小demo,发在原来的一个博客里。因为博客空间在国外经常被墙,今天把之前写的一些东西搬到这里来。

迅雷,快车旋风链接编码解码C#源代码

在做一个项目时,有要求用到下载工具下载,于是上网找了找,找到了这些链接的加密规则,自己写了几个转换方法

写的有点急,可能不太完善,若您在使用中发现问题,烦请留言给我指出,谢谢!

  1. using System;

  2. using System.Text;

  3. /*

  4. * Author:大宝http://dabao.im,http://dabao2010.blog.51cto.com

  5. * Desc:迅雷,快车,旋风链接编码解码

  6. */

  7. namespace Base64Url

  8. {

  9. class Program

  10. {

  11. #region 静态常量

  12. /// <summary>迅雷 thunder://</summary>

  13. publicconststring _thunder = "Thunder://";

  14. /// <summary>快车 flashget://</summary>

  15. publicconststring _flashget = "Flashget://";

  16. /// <summary>QQ旋风 qqdl://</summary>

  17. publicconststring _qqdl = "Qqdl://";

  18. #endregion

  19. staticvoid Main(string[] args)

  20. {

  21. string url = "";

  22. url = "thunder://QUFmdHA6Ly82OjZAZnRwLjY2eXMub3JnOjQ1MDgv44CQ6L+F6Zu35LiL6L29d3d3LmR5MTMxLmNvbeOAkVjmiJjorabliY3kvKDvvJrph6HliJrni7xCROS4reiLseWPjOWtlzEyODDpq5jmuIUucm12Ylpa";

  23. //url = "Flashget://W0ZMQVNIR0VUXWh0dHA6Ly9ibG9nLnhpYW9odW9jaGFpLm5ldFtGTEFTSEdFVF0=&xiaohuochai";

  24. //url="Qqdl://aHR0cDovL2Jsb2cueGlhb2h2b2NoYWkubmV0";

  25. string url2 = "http://xiaohuochai.net";

  26. string thunder = "";

  27. string flashget = "";

  28. string qqdl = "";

  29. //编码

  30. thunder = EncodeUrlToBase64(url2, LinkType.Thunder);

  31. flashget = EncodeUrlToBase64(url2, LinkType.Flashget);

  32. qqdl = EncodeUrlToBase64(url2, LinkType.Qqdl);

  33. Console.Write(thunder + "\r\n" + flashget + "\r\n" + qqdl + "\r\n");

  34. //解码

  35. string result = "您输入的地址可能不是迅雷,快车,旋风中的任何一种!";

  36. if (url.StartsWith(_thunder, true, null))//迅雷

  37. result = DecodeUrlFromBase64(url.Remove(0, _thunder.Length), LinkType.Thunder);

  38. if (url.StartsWith(_flashget, true, null))//快车

  39. result = DecodeUrlFromBase64(url.Remove(0, _flashget.Length), LinkType.Flashget);

  40. if (url.StartsWith(_qqdl, true, null))//QQ旋风

  41. result = DecodeUrlFromBase64(url.Remove(0, _qqdl.Length), LinkType.Qqdl);

  42. Console.Write(result);

  43. Console.ReadLine();

  44. }

  45. #region 编码&解码

  46. #region 编码

  47. /// <summary>

  48. /// 编码URL

  49. /// </summary>

  50. /// <param name="url">原生URL</param>

  51. protectedstaticstring EncodeUrlToBase64(string url, LinkType linktype)

  52. {

  53. string enurl = "";

  54. string tempUrl = "";

  55. switch (linktype)

  56. {

  57. case LinkType.Thunder:

  58. tempUrl = "AA" + url + "ZZ";

  59. enurl = _thunder + EnCodeUrl(tempUrl);

  60. break;

  61. case LinkType.Flashget:

  62. tempUrl = "[FLASHGET]" + url + "[FLASHGET]";

  63. enurl = _flashget + EnCodeUrl(tempUrl) + "&xiaohuochai";//&后为用户自定义信息,具体什么用还不清楚

  64. break;

  65. case LinkType.Qqdl:

  66. enurl = _qqdl + EnCodeUrl(url);

  67. break;

  68. default:

  69. break;

  70. }

  71. return enurl;

  72. }

  73. privatestaticstring EnCodeUrl(string tempUrl)

  74. {

  75. byte[] bytes; string enurl;

  76. bytes = Encoding.Default.GetBytes(tempUrl);

  77. enurl = Convert.ToBase64String(bytes);

  78. return enurl;

  79. }

  80. #endregion

  81. #region 解码

  82. /// <summary>

  83. /// 链接解码

  84. /// </summary>

  85. /// <param name="baseurl">链接</param>

  86. protectedstaticstring DecodeUrlFromBase64(string baseurl, LinkType linktype)

  87. {

  88. string deurl = "";

  89. switch (linktype)

  90. {

  91. case LinkType.Thunder:

  92. deurl = DecodeUrl(baseurl);

  93. deurl = deurl.Remove(0, 2);

  94. deurl = deurl.Remove(deurl.Length - 2);

  95. break;

  96. case LinkType.Flashget:

  97. deurl = DecodeUrl(baseurl.Remove(baseurl.LastIndexOf('&')));

  98. deurl = deurl.Remove(0, 10);

  99. deurl = deurl.Remove(deurl.Length - 10);

  100. break;

  101. case LinkType.Qqdl:

  102. deurl = DecodeUrl(baseurl);

  103. break;

  104. default:

  105. break;

  106. }

  107. return deurl;

  108. }

  109. privatestaticstring DecodeUrl(string baseurl)

  110. {

  111. byte[] bytes;

  112. string deurl;

  113. bytes = Convert.FromBase64String(baseurl);

  114. deurl = Encoding.UTF8.GetString(bytes);

  115. return deurl;

  116. }

  117. #endregion

  118. #endregion

  119. }

  120. /// <summary>

  121. /// 链接类型

  122. /// </summary>

  123. enum LinkType

  124. {

  125. /// <summary>迅雷</summary>

  126. Thunder,

  127. /// <summary>快车</summary>

  128. Flashget,

  129. /// <summary>QQ旋风</summary>

  130. Qqdl

  131. }

  132. }

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI