<%
Function bin2dec(binStr)
towPow = 1
numLen = len(binStr)
bin2Dec = 0
decPos = numLen
Do While decPos>0
cChar = mid(binStr,decPos,1)
nChar = Cint(cChar)
bin2Dec = bin2Dec+nChar*towPow
towPow = towPow*2
decPos = decPos-1
Loop
End Function
Function dec2bin(octNumber)
vara = octNumber
Do
dec2bin = cstr(vara mod 2) & dec2bin
vara = vara / 2
loop until vara = 0
End Function
Bstr_base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ = "
Function enCode_base64(strBin)
bins = ""
for i = 1 to lenB(strBin)
varTm = AscB(midB(strBin,i,1))
bins = bins & right("00000000" & dec2bin(varTm),8)
If i mod 3 = 0 Then
for w = 0 to 3
sixBin = mid(bins,w*6+1,6)
nChar = bin2Dec(sixBin)+1
enCode_base64 = enCode_base64 & mid(Bstr_base64,nChar,1)
next
bins = ""
End If
next
If bins <> "" Then
pads = 3-len(bins) / 8
exitLoop = False
Do While Not exitLoop
nChar = left(bins,6)
If len(nChar)<6 Then
nChar = left(nChar & "000000",6)
exitLoop = True
End If
nNum = bin2dec(nChar)+1
enCode_base64 = enCode_base64 & mid(Bstr_base64,nNum,1)
bins = mid(bins,7)
Loop
enCode_base64 = enCode_base64 & String(pads," = ")
End If
End Function
Function deCode_base64(baseStr)
If len(baseStr) mod 4 <> 0 Then
exit Function
End If
bins = ""
for i = 1 to Len(baseStr)
nChar = mid(baseStr,i,1)
If nChar = " = " Then
exit for
End If
oldValue = inStr(Bstr_base64,nChar)-1
binValue = right("000000" & dec2bin(oldValue),6)
bins = bins & binValue
If len(bins) >= 8 Then
deChar = left(bins,8)
bins = mid(bins,9)
deCode_base64 = deCode_base64 & chrB(bin2Dec(deChar))
End If
next
End Function
%>