VBMAN.ToolsBase64 - Base64 编解码对象
概述
VBMAN.ToolsBase64 提供了 Base64 编码和解码功能,支持字符串和字节数组的相互转换,常用于数据传输、图片编码、配置文件等场景。
核心特性
- 双向转换: 支持编码和解码
- 多种输入: 支持字符串和字节数组
- 标准 Base64: 兼容 RFC 4648 标准
- URL 安全: 支持 URL 安全的 Base64 变体
方法
Encode
将字符串编码为 Base64
vb
Public Function Encode(text As String) As String参数:
text- 要编码的字符串
返回: Base64 编码的字符串
示例:
vb
' 编码字符串
Dim encoded As String
encoded = VBMAN.ToolsBase64.Encode("Hello World")
Debug.Print encoded ' SGVsbG8gV29ybGQ=
' 编码中文
encoded = VBMAN.ToolsBase64.Encode("你好世界")
Debug.Print encoded ' 5L2g5aW95LiW55WMDecode
将 Base64 解码为字符串
vb
Public Function Decode(base64String As String) As String参数:
base64String- Base64 编码的字符串
返回: 解码后的字符串
示例:
vb
' 解码
Dim decoded As String
decoded = VBMAN.ToolsBase64.Decode("SGVsbG8gV29ybGQ=")
Debug.Print decoded ' Hello WorldBytesToBase64
将字节数组转为 Base64
vb
Public Function BytesToBase64(bytes() As Byte) As String参数:
bytes- 字节数组
返回: Base64 编码的字符串
示例:
vb
' 字节数组转 Base64
Dim bytes(0 To 4) As Byte
bytes(0) = 72: bytes(1) = 101
bytes(2) = 108: bytes(3) = 108
bytes(4) = 111
Dim base64 As String
base64 = VBMAN.ToolsBase64.BytesToBase64(bytes)
Debug.Print base64 ' SGVsbG8=Base64ToBytes
将 Base64 转为字节数组
vb
Public Function Base64ToBytes(base64String As String) As Byte()参数:
base64String- Base64 编码的字符串
返回: 字节数组
示例:
vb
' Base64 转字节数组
Dim bytes() As Byte
bytes = VBMAN.ToolsBase64.Base64ToBytes("SGVsbG8=")
' 使用字节数组
Dim i As Integer
For i = LBound(bytes) To UBound(bytes)
Debug.Print bytes(i);
Next综合示例
示例1: 图片 Base64 编码
vb
Private Function ImageToBase64(filePath As String) As String
' 读取图片文件
VBMAN.FileEx.OpenFile filePath, "R"
Dim bytes() As Byte
bytes = VBMAN.FileEx.ReadData.ReturnBytes
VBMAN.FileEx.CloseFile
' 转为 Base64
ImageToBase64 = VBMAN.ToolsBase64.BytesToBase64(bytes)
End Function
Private Sub EmbedImage()
Dim base64Image As String
base64Image = ImageToBase64("C:\\photo.jpg")
' 嵌入 HTML
Dim html As String
html = "<img src='data:image/jpeg;base64," & base64Image & "'>"
WebBrowser1.Document.Write html
End Sub示例2: Basic 认证头
vb
Private Function CreateBasicAuthHeader(username As String, password As String) As String
' 组合用户名密码
Dim credentials As String
credentials = username & ":" & password
' Base64 编码
Dim encoded As String
encoded = VBMAN.ToolsBase64.Encode(credentials)
' 构建认证头
CreateBasicAuthHeader = "Basic " & encoded
End Function
Private Sub TestAuth()
Dim authHeader As String
authHeader = CreateBasicAuthHeader("admin", "secret123")
Debug.Print authHeader ' Basic YWRtaW46c2VjcmV0MTIz
End Sub示例3: 配置文件加密存储
vb
Private Sub SaveEncodedConfig(config As String, filePath As String)
' 编码配置内容
Dim encoded As String
encoded = VBMAN.ToolsBase64.Encode(config)
' 保存到文件
VBMAN.FileEx.SetBufferText(encoded, "UTF-8").SaveData filePath
End Sub
Private Function LoadEncodedConfig(filePath As String) As String
' 读取文件
Dim encoded As String
encoded = VBMAN.FileEx.OpenFile(filePath, "R").ReadData.ReturnText("UTF-8")
VBMAN.FileEx.CloseFile
' 解码
LoadEncodedConfig = VBMAN.ToolsBase64.Decode(encoded)
End Function示例4: 数据传输
vb
Private Sub SendDataPacket(data As String)
' 编码数据
Dim encoded As String
encoded = VBMAN.ToolsBase64.Encode(data)
' 构建 JSON 数据包
Dim packet As New cJson
packet("type") = "data"
packet("encoding") = "base64"
packet("content") = encoded
' 发送
Socket.SendData VBMAN.ToolsUtf8.Encode(packet.Encode)
End Sub
Private Sub ReceiveDataPacket(bytes() As Byte)
' 解析 JSON
Dim json As cJson
Set json = VBMAN.Json.Decode(VBMAN.ToolsUtf8.Decode(bytes))
' 检查编码方式
If json("encoding") = "base64" Then
' 解码内容
Dim content As String
content = VBMAN.ToolsBase64.Decode(json("content"))
' 处理内容...
Debug.Print content
End If
End Sub最佳实践
- 传输编码: 二进制数据通过文本协议传输时使用 Base64
- 图片嵌入: HTML/CSS 中嵌入小图片使用 Base64
- 认证信息: HTTP Basic 认证使用 Base64 编码
- 数据完整性: Base64 编码后可安全地在 URL、JSON、XML 中传输
- 大小注意: Base64 编码后体积增加约 33%,大数据量考虑其他方案