专用链接转换工具+VB源码 (迅雷、网际快车、QQ超级旋风)

无聊,练手。要下载进来看详细...



下载文件 点击下载此文件

【主要代码如下】
'(注:我自己用的不是这种方法,我讨厌For循环.)
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
'适用于中、英文的Base64编码/解码VB6超精简版 作者:同济黄正
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
'适用于中、英文的Base64编码/解码VB6超精简版 作者:同济黄正
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



[本日志由 JiaJia 于 2008-01-20 04:15 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 迅雷 快车 旋风 Base64 原创软件
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.