base64编码解码函数

<%
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
%> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值