| '*************************begin for iCount=1 to lenString step 3 tempBinary = Mid(paramString, iCount, 3) 'response.write tempBinary tempByteOne= Asc(Mid(tempBinary, 1, 1)): tempSaveBitsOne = tempByteOne And 3 tempByteTwo = Asc(Mid(tempBinary, 2, 1)): tempSaveBitsTwo = tempByteTwo And 15 tempChar = Asc(Mid(tempBinary, 3, 1)) tempByteOne = Mid(sBASE_64_CHARACTERS, ((tempByteOne And 252) \ 4) + 1, 1) tempByteTwo = Mid(sBASE_64_CHARACTERS, (((tempByteTwo And 240) \ 16) Or (tempSaveBitsOne * 16) And &HFF) + 1, 1) tempByteThree = Mid(sBASE_64_CHARACTERS, (((tempChar And 192) \ 64) Or (tempSaveBitsTwo * 4) And &HFF) + 1, 1) tempByteFour = Mid(sBASE_64_CHARACTERS, (tempChar And 63) + 1, 1) tempString = tempByteOne & tempByteTwo & tempByteThree & tempByteFour returnValue=returnValue & tempString next '*************************end '*************************begin处理最后剩余的几个字符 if mod3String>0 then tempBinary = Mid(paramString, iCount, mod3String) if mod3String=1 then tempString = tempBinary & Chr(64) & Chr(64) & Chr(64) '用@号补足位数 else tempString = tempBinary & Chr(64) & Chr(64) '用@号补足位数 end if returnValue=returnValue & tempString end if '*************************end处理最后剩余的几个字符 Encode=returnValue end if end function '******************************************** 'end将Ansi编码的字符串进行Base64编码 '******************************************** '******************************************** 'end将Base64编码字符串转换成Ansi编码的字符串 '******************************************** public function Decode(paramString) tempString="" returnValue="" lenString=len(paramString) if lenString<1 then Decode=returnValue else mod4String=lenString mod 4 if mod4String >0 then '字符串长度应当是4的倍数 Decode=returnValue else 'begin判断是不是@号 if Mid(paramString, lenString-1, 1) = "@" then mod4String=2 end if if Mid(paramString, lenString-2, 1) = "@" then mod4String=1 end if 'end判断是不是@号 if mod4String>0 then lenString=lenString-4 end if |