[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)
``` 唔,好像论坛的 Markdown 渲染器有点小问题,这是我原文的 Markdown 档:https://blog.zhangsy.me/20170721.md 好吧 我全部都看了一遍 还是看不懂 感谢楼主,回头下来看看 huwoods 发表于 2017-7-27 13:54
好吧 我全部都看了一遍 还是看不懂
哪不懂?说出来我讲给你
感谢楼主,回头下来看看 make一下!想知道怎么用 感谢楼主分享
页:
[1]