VB6实现Base64编码/解码
来源:互联网 发布:淘宝店铺导航颜色 编辑:程序博客网 时间:2024/05/21 14:00
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
- VB6实现Base64编码/解码
- Base64编码解码与实现
- Base64编码、解码的实现
- Base64编码、解码的实现
- Base64编码解码与实现
- Base64编码、解码的实现
- Base64编码与解码实现
- Base64编码、解码的实现
- java实现Base64编码解码
- Js实现Base64编码、解码
- Base64 编码解码C++实现
- Base64编码/解码VB6超精简版(适用于中、英文)
- Base64编码原理及编码、解码实现
- Base64编码解码和URLEnocde编码解码的C实现
- base64编码解码的实现(C语言)
- C# 实现Base64的编码/解码
- JavaScript实现的Base64编码和解码
- JavaScript实现的Base64编码和解码
- 解决FLASH发布成EXE文件后,不能正确加载本地文件的问题
- 数组的长度需要自动变化时的解决办法
- CString常用方法简介
- 库存中货物超期的天数
- 在Web页中使用Media Player一
- VB6实现Base64编码/解码
- VML实现圆角的例子
- nod32的升级服务器
- Format 用法
- 在Web页中使用Media Player二
- Lean Software Development, Part 2: Eliminate Waste
- MediaPlayer控件属性描述
- 有感:应聘Java笔试时可能出现问题及其答案
- 用Javascript检测Flash功能是否可用