VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 15492|回复: 48

迅雷 快车 旋风 下载地址转换[源码]

[复制链接]
 楼主| 发表于 2008-12-26 14:31:18 | 显示全部楼层 |阅读模式
看到这个东西,真的很不错,用这里提供的迅雷快车旋风地址转换核心代码,我就用这个代码做了个界面,加了点代码,原来这3个下载软件的的地址转换这么简单啊。
有时候,想要知道真实下载地址的时候,这还有些用的。当然还有其它的方法可以获知真实的下载地址。不过这个可能是最简单方便的。



http://www.hotwz.net/blog/article.asp?id=413

迅雷快车旋风地址转换核心代码

其实这下载地址的编码转换是很简单的,用的就是Base64网址编码转换。不同的是各自加了不同的字符。

迅雷就在地址前后分别加上“AA”和“ZZ”,然后进行Base64编码,转换前为:
AA地址ZZ

转换后的地址再加上 thunder://

快车是在地址前后分别加上了“[FLASHGET]”,然后Base64编码,转换前为:

[FLASHGET]地址[FLASHGET]

转换后的地址再加上 Flashget://

旋风就直接Base64编码,转换前为:

地址

转换后的地址再加上 qqdl://

核心代码:

Option Explicit
Private Const cstBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Private arrBase64() As String
'00100001 00100001 00100001             --源码
'00001000 00010010 00000100 00100001    --Base64码



Public Function Base64Encode(strSource As String) As String '加密
On Error Resume Next

If UBound(arrBase64) = -1 Then
    arrBase64 = Split(StrConv(cstBase64, vbUnicode), vbNullChar)
End If
Dim arrB() As Byte, bTmp(2)  As Byte, bT As Byte
Dim I As Long, J As Long
arrB = StrConv(strSource, vbFromUnicode)

J = UBound(arrB)
For I = 0 To J Step 3
    Erase bTmp
    bTmp(0) = arrB(I + 0)
    bTmp(1) = arrB(I + 1)
    bTmp(2) = arrB(I + 2)
   
    bT = (bTmp(0) And 252) / 4
    Base64Encode = Base64Encode & arrBase64(bT)
   
    bT = (bTmp(0) And 3) * 16
    bT = bT + bTmp(1) \ 16
    Base64Encode = Base64Encode & arrBase64(bT)
   
    bT = (bTmp(1) And 15) * 4
    bT = bT + bTmp(2) \ 64
    If I + 1 <= J Then
        Base64Encode = Base64Encode & arrBase64(bT)
    Else
        Base64Encode = Base64Encode & "="
    End If
   
    bT = bTmp(2) And 63
    If I + 2 <= J Then
        Base64Encode = Base64Encode & arrBase64(bT)
    Else
        Base64Encode = Base64Encode & "="
    End If
Next
End Function

Public Function Base64Decode(strEncoded As String) As String '解密

On Error Resume Next
Dim arrB() As Byte, bTmp(3)  As Byte, bT, bRet() As Byte
Dim I As Long, J As Long
arrB = StrConv(strEncoded, vbFromUnicode)
J = InStr(strEncoded & "=", "=") - 2
ReDim bRet(J - J \ 4 - 1)
For I = 0 To J Step 4
    Erase bTmp
    bTmp(0) = (InStr(cstBase64, Chr(arrB(I))) - 1) And 63
    bTmp(1) = (InStr(cstBase64, Chr(arrB(I + 1))) - 1) And 63
    bTmp(2) = (InStr(cstBase64, Chr(arrB(I + 2))) - 1) And 63
    bTmp(3) = (InStr(cstBase64, Chr(arrB(I + 3))) - 1) And 63
   
    bT = bTmp(0) * 2 ^ 18 + bTmp(1) * 2 ^ 12 + bTmp(2) * 2 ^ 6 + bTmp(3)
   
    bRet((I \ 4) * 3) = bT \ 65536
    bRet((I \ 4) * 3 + 1) = (bT And 65280) \ 256
    bRet((I \ 4) * 3 + 2) = bT And 255
Next
Base64Decode = StrConv(bRet, vbUnicode)
End Function

抓图

抓图

迅雷快车旋风地址转换.rar

9.89 KB, 下载次数: 1101

源码

评分

参与人数 12威望 +25 人气 +13 收起 理由
守护者 + 3 + 1 原来这么简单!
wwswwswws + 1 太好了,下一个来研究一下
KusoSoft + 1 + 1 谢谢分享。
阳光宝宝 + 1 + 1 发布源码
netcut + 5 + 1 df
bbadsl + 3 + 1 我很赞同
ewqs + 2 我很赞同
swx1995 + 2 + 1 如果是原创的话加得更多点。支持下。
仙剑魔 + 4 + 3 原来如此
gxght1122 + 1 + 1 +
hfcas + 1 发布源码
bshkl + 3 + 1 支持疯子...

查看全部评分

本帖被以下淘专辑推荐:

发表于 2008-12-26 14:58:37 | 显示全部楼层
the first
回复 支持 反对

使用道具 举报

发表于 2008-12-26 15:00:52 | 显示全部楼层
the 2rd
回复 支持 反对

使用道具 举报

发表于 2008-12-26 15:39:21 | 显示全部楼层
继续坚持一贯的原则
源码就帮顶。。
回复 支持 反对

使用道具 举报

发表于 2008-12-26 15:53:17 | 显示全部楼层
谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2008-12-26 16:28:19 | 显示全部楼层
喜欢开源人
回复 支持 反对

使用道具 举报

发表于 2008-12-26 16:34:38 | 显示全部楼层


这个有用挖..
回复 支持 反对

使用道具 举报

发表于 2008-12-26 17:41:19 | 显示全部楼层
.....
晕了
base64...

貌似这个东西N早就出来了吧....
回复 支持 反对

使用道具 举报

发表于 2008-12-26 18:30:09 | 显示全部楼层
好东西,我最讨厌在电脑里装那么多个下载软件,老是打架!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-26 19:41:59 | 显示全部楼层
原帖由 阳光宝宝 于 2008-12-26 18:30 发表
好东西,我最讨厌在电脑里装那么多个下载软件,老是打架!


有同感啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2019-11-12 04:56

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表