CE.BB.CAT 发表于 2017-7-21 22:50

[C#][附源码][可用作服务器工具]迅雷下载链 生成与解析

本帖最后由 CE.BB.CAT 于 2017-7-28 19:08 编辑

[需要 .NET 4.0]
各位大大好,虽然好早就听说了,但因为之前没有邀请码没办法注册,乘着开放注册的春风,今天终于注册了;

我本人是软件工程专业的学生,正好看到 [[原创工具] 迅雷地址解密加密开源另有快车,旋风分析草稿](http://www.52pojie.cn/thread-625492-1-1.html) ,看起来挺适合我的,就也用 C# 写一个试试,恳请各位前辈多多指点,那篇文章的作者:@xiaojing2015

用法:
> [本地程序名] $链接一 $链接二 $链接三 $链接四 $链接五

如:
> EncryptXunleiLink.exe http://120.52.72.23/i.imgur.com/TzIysTb.png http://120.52.72.23/i.imgur.com/fVVxM4G.png

注意:各个参数之间有空格

下载:
- 生成-Dropbox:https://www.dropbox.com/s/41oa5iikqi2ik9y/EncryptXunleiLink.exe?dl=0
- 解析-Dropbox:https://www.dropbox.com/s/wr3cimxgv023n5b/DecryptXunleiLink.exe?dl=0

论坛附件和网盘链接我会长久保留与维护,如有失效请尽快告知我!

下面这是 C# 版本生成迅雷链的代码,匆匆写就

```csharp
using System;
using System.Text;

namespace EncryptXunleiLink
{
    class Program
    {
      static int Main(string[] args)
      {
            if (args.Length == 0)
            {
                Console.WriteLine("无参数,请检查输入");
                return 0;
            }
            else
            {
                int index_in;
                for (index_in = 0; index_in < args.Length; index_in++)
                {
                  string source_link = args;
                  string link_added = "AA" + source_link + "ZZ";
                  byte[] link_added_byte_arr = Encoding.Default.GetBytes(link_added);
                  string endbyte_a = "thunder://" + Convert.ToBase64String(link_added_byte_arr);
                  Console.WriteLine(endbyte_a);
                }
                return index_in;
            }
      }
    }
}
```

这是运行效果:

![生成-2.0-Imgur-ISPCND](http://120.52.72.23/i.imgur.com/TzIysTb.png)

这是 C# 版本解析迅雷链的代码,结构设计得不是很满意,恳请指点

```csharp
using System;
using System.Text;

namespace DecryptXunleiLink
{
    class Program
    {
      static int Main(string[] args)
      {
                        int num_of_con = 0;
            if (args.Length == 0)
            {
                Console.WriteLine("无参数,请检查输入");
            }
            else
            {
                for (int index_in = 0; index_in < args.Length; index_in++)
                {
                  string xunlei_link = args;
                  if (xunlei_link.Substring(0, 10) == "thunder://")
                  {
                        string xunlei_link_cuted = xunlei_link.Substring(10);
                        if (xunlei_link_cuted.Length % 4.0 == 0)
                        {
                            /* 解码并转为 string */
                            string source_link_added_s = Encoding.Default.GetString(Convert.FromBase64String(xunlei_link_cuted));

                            if (source_link_added_s.Substring(0, 2) == "AA" && source_link_added_s.Substring(source_link_added_s.Length - 2, 2) == "ZZ")
                            {
                              /*先去掉"AA",再去掉"ZZ"*/
                              string source_link = source_link_added_s.Substring(2).Substring(0, source_link_added_s.Length - 4);
                              Console.WriteLine(source_link);
                                                                num_of_con++;
                            }
                            else
                              Console.WriteLine("");
                        }
                        else
                        {
                            Console.WriteLine("");
                            continue;
                        }
                  }
                  else
                        Console.WriteLine("");
                }
            }
                        return num_of_con;
      }
    }
}
```

相应的,这是执行效果:

![解析-2.0-Imgur-ISPCND](http://120.52.72.23/i.imgur.com/fVVxM4G.png)

嗯,大概就是这样,虽然看起来简单,想起来也简单,但解析可把我缠住了有一会呢,哈哈

就这样了,晚安

```csharp
Base64 长度总为 4 的整数倍
byte[] System.Text.Encoding.Default.GetBytes(string s)
string Convert.ToBase64String(byte[] inArray)
byte[] Convert.FromBase64String(string s)
stringSystem.Text.Encoding.Default.GetString(byte[] bytes)***.Substring(0,***.Length - 4)
```

CE.BB.CAT 发表于 2017-7-21 23:02

唔,好像论坛的 Markdown 渲染器有点小问题,这是我原文的 Markdown 档:https://blog.zhangsy.me/20170721.md

one486 发表于 2017-7-25 05:10

huwoods 发表于 2017-7-27 13:54

好吧 我全部都看了一遍 还是看不懂

Removable 发表于 2017-7-27 17:09

感谢楼主,回头下来看看

CE.BB.CAT 发表于 2017-8-8 11:21

huwoods 发表于 2017-7-27 13:54
好吧 我全部都看了一遍 还是看不懂

哪不懂?说出来我讲给你

Junle 发表于 2017-11-12 21:02


感谢楼主,回头下来看看

zhizhi171121 发表于 2018-4-16 12:07

make一下!想知道怎么用

chen57725 发表于 2018-5-24 10:55

感谢楼主分享
页: [1]
查看完整版本: [C#][附源码][可用作服务器工具]迅雷下载链 生成与解析