• 计算机讨论版
  • 电脑诊所
  • 菜鸟学院
  • 软件世界
  • 安全专区
  • 硬件世界
  • 网络世界
  • 网页设计
  • 图像设计
  • 程序设计
  • 操作系统
  • 计算机考试
  • 电脑故障
  • 电脑学习
  • 电脑技术
  • 电脑入门
  • 计算机知识
  • 电脑之家
  • 故障诊断
  • 电脑医院
  • 电脑学校
  • 电脑维护
  • 电脑医生
  • 电脑问答
  • 计算机问题
  • 电脑小知识
  • 电脑软件
  • 电脑diy
  • 你问我答
  • 网友俱乐部
  • 实用技巧
  • 初级应用
  • 心得分享
  • 软硬兼施
  • 电脑之家
  • 维护资料
  • 软件应用
  • 软件交流
  • 电脑硬件
  • 硬件知识
  • 电脑网络
  • windows
  • 程序设计

    程序设计
    ·哪里有下vb6软件和vb6教程的?
    ·需要两段代码,希望有人帮忙
    ·+++++++++关于cpu利用率滴c程序,各位c大...
    ·请问一个关于c语言的菜问题
    ·小菜一问  !
    ·关于DAO
    ·直接通过ODBCAPI访问SQL数据库(一)
    ·有没有什么地方下载ASP论坛源代码的啊
    ·关于算法
    ·win 2003的IIS
    ·[求助]VB读取顺序文件,空格符不起作用。急!
    ·这里有人玩Qbasick吗?很古老的那种?
    ·直接通过ODBCAPI访问SQL数据库(二)
    ·请问xp中可以用tc编程吗
    ·注册码是怎样炼成的
    ·[分享]Enc-Base64位加密程序源代码上
    ·帮帮忙~TD有win2000下的编译和连接程序么~
    ·vc++如何立即重绘窗口?
    ·请教如何用asp弄的图片刷新显示
    ·Melissa的源码[转帖]
    ·[原创]如何取得计算机名
    ·各位大虾帮帮忙了
    ·[求助]关于vb
    ·SQL和VB的问题
    ·我提一下意见,关于板块的改进!
    ·请教一个入门问题,ACCESS
    ·[注意]    寻找编程爱好者!!!
    ·ACCESS 小问题?,先谢了!!
    ·新手请教个问题
    ·关于VB语言和怎样学习VB

    Enc-Base64位加密程序源代码下[分享]

    类别: 程序设计  时间: 2007.03.15

    小鸟伊人
    Enc-Base64位加密程序源代码下[分享]
    '接着上次的代码往下

    mInByte(2) = myBArray(i + 2)
                mInByte(3) = myBArray(i + 3)
                Base64DecodeByte mInByte, mOutByte, 4
            End If
            tmpArray(j * 3) = mOutByte(0)
            tmpArray(j * 3 + 1) = mOutByte(1)
            tmpArray(j * 3 + 2) = mOutByte(2)
            j = j + 1
        Next i
        Base64Decode = BinaryToString(tmpArray)
    End Function

    Private Sub Base64DecodeByte(mInByte() As Byte, mOutByte() As Byte, ByteNum As Integer)
        Dim tByte As Byte
        Dim i As Integer
        ByteNum = 0
        For i = 0 To 3
            If mInByte(i) >= Asc("A") And mInByte(i) <= Asc("Z") Then
                mInByte(i) = mInByte(i) - Asc("A")
            ElseIf mInByte(i) >= Asc("a") And mInByte(i) <= Asc("z") Then
                mInByte(i) = mInByte(i) - Asc("a") + 26
            ElseIf mInByte(i) >= Asc("0") And mInByte(i) <= Asc("9") Then
                mInByte(i) = mInByte(i) - Asc("0") + 52
            ElseIf mInByte(i) = Asc("+") Then
                mInByte(i) = 62
            ElseIf mInByte(i) = Asc("/") Then
                mInByte(i) = 63
            Else '"="
                ByteNum = ByteNum + 1
                mInByte(i) = 0
            End If
        Next i
        '取前六位
        tByte = (mInByte(0) And &H3F) * 4 + (mInByte(1) And &H30) / 16
        '0的六位和1的前两位
        mOutByte(0) = tByte
        tByte = (mInByte(1) And &HF) * 16 + (mInByte(2) And &H3C) / 4
        '1的后四位和2的前四位
        mOutByte(1) = tByte
        tByte = (mInByte(2) And &H3) * 64 + (mInByte(3) And &H3F)
        mOutByte(2) = tByte
        '2的后两位和3的六位
    End Sub
    Private Function BinaryToString(ByVal BinaryStr As Variant) As String '二进制转换为字符串
      Dim lnglen As Long
      Dim tmpBin As Variant
      Dim strC As String
      Dim skipflag As Long
      Dim i As Long
      skipflag = 0
      strC = ""
      
      If Not IsNull(BinaryStr) Then
          lnglen = LenB(BinaryStr)
          For i = 1 To lnglen
              If skipflag = 0 Then
                tmpBin = MidB(BinaryStr, i, 1)
                If AscB(tmpBin) > 127 Then
                    strC = strC & Chr(AscW(MidB(BinaryStr, i + 1, 1) & tmpBin))
                    skipflag = 1
                Else
                    strC = strC & Chr(AscB(tmpBin))
                End If
              Else
                skipflag = 0
              End If
          Next
        End If
        BinaryToString = strC
    End Function

    Private Function StringToBinary(ByVal VarString As String) As Variant '字符串转成二进制
      Dim strBin As Variant
      Dim varchar As Variant
      Dim varasc As Long
      Dim varlow, varhigh
      Dim i As Long
      strBin = ""
      
      For i = 1 To Len(VarString)
          varchar = Mid(VarString, i, 1)
          varasc = Asc(varchar)
          If varasc < 0 Then
              varasc = varasc + 65535
          End If
          If varasc > 255 Then
              varlow = Left(Hex(Asc(varchar)), 2)
              varhigh = Right(Hex(Asc(varchar)), 2)
              strBin = strBin & ChrB("&H" & varlow) & ChrB("&H" & varhigh)
          Else
              strBin = strBin & ChrB(AscB(varchar))
          End If
      Next
      StringToBinary = strBin
    End Function


    上一篇:哪里有下vb6软件和vb6教程的? 下一篇:[分享]Enc-Base64位加密程序源代码上

    计算机讨论版 © 版权所有

    提示:计算机讨论版致力于电脑信息的分享与传播,内容仅供参考,按此操作责任自负。