Public Function ufmBase64_Encode(bstrSource) As String
Const BASE64_TABLE As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim strTempLine As String
Dim j As Integer
If bstrSource = "" Then
bstrSource = " "
End If
For j = 1 To (Len(bstrSource) - Len(bstrSource) Mod 3) Step 3
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((asc(Mid(bstrSource, j, 1)) Mod 4) * 16 _
+ asc(Mid(bstrSource, j + 1, 1)) \ 16) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((asc(Mid(bstrSource, j + 1, 1)) Mod 16) * 4 _
+ asc(Mid(bstrSource, j + 2, 1)) \ 64) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j + 2, 1)) Mod 64) + 1, 1)
Next j
If Not (Len(bstrSource) Mod 3) = 0 Then
If (Len(bstrSource) Mod 3) = 2 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) Mod 4) * 16 _
+ asc(Mid(bstrSource, j + 1, 1)) \ 16 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j + 1, 1)) Mod 16) * 4 + 1, 1)
strTempLine = strTempLine & "="
ElseIf (Len(bstrSource) Mod 3) = 1 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, asc(Mid(bstrSource, j, 1)) \ 4 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) Mod 4) * 16 + 1, 1)
strTempLine = strTempLine & "=="
End If
End If
ufmBase64_Encode = strTempLine
End Function
Const BASE64_TABLE As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim strTempLine As String
Dim j As Integer
If bstrSource = "" Then
bstrSource = " "
End If
For j = 1 To (Len(bstrSource) - Len(bstrSource) Mod 3) Step 3
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((asc(Mid(bstrSource, j, 1)) Mod 4) * 16 _
+ asc(Mid(bstrSource, j + 1, 1)) \ 16) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((asc(Mid(bstrSource, j + 1, 1)) Mod 16) * 4 _
+ asc(Mid(bstrSource, j + 2, 1)) \ 64) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j + 2, 1)) Mod 64) + 1, 1)
Next j
If Not (Len(bstrSource) Mod 3) = 0 Then
If (Len(bstrSource) Mod 3) = 2 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) Mod 4) * 16 _
+ asc(Mid(bstrSource, j + 1, 1)) \ 16 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j + 1, 1)) Mod 16) * 4 + 1, 1)
strTempLine = strTempLine & "="
ElseIf (Len(bstrSource) Mod 3) = 1 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, asc(Mid(bstrSource, j, 1)) \ 4 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (asc(Mid(bstrSource, j, 1)) Mod 4) * 16 + 1, 1)
strTempLine = strTempLine & "=="
End If
End If
ufmBase64_Encode = strTempLine
End Function
浙公网安备 33010602011771号