【 tulaoshi.com - ASP 】
                             
                               <%
     OPTION EXPLICIT
     const BASE_64_MAP_INIT =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
     dim nl
     ' zero based arrays
     dim Base64EncMap(63)
     dim Base64DecMap(127)
     ' must be called before using anything else
     PUBLIC SUB initCodecs()
          ' init vars
          nl = "<P" & chr(13) & chr(10)
          ' setup base 64
          dim max, idx
             max = len(BASE_64_MAP_INIT)
          for idx = 0 to max - 1
               ' one based string
               Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
          next
          for idx = 0 to max - 1
               Base64DecMap(ASC(Base64EncMap(idx))) = idx
          next
     END SUB
     ' encode base 64 encoded string
     PUBLIC FUNCTION base64Encode(plain)
          if len(plain) = 0 then
               base64Encode = ""
               exit function
          end if
          dim ret, ndx, by3, first, second, third
          by3 = (len(plain)  3) * 3
          ndx = 1
          do while ndx <= by3
               first  = asc(mid(plain, ndx+0, 1))
               second = asc(mid(plain, ndx+1, 1))
               third  = asc(mid(plain, ndx+2, 1))
               ret = ret & Base64EncMap(  (first  4) AND 63 )
               ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second  16)
AND 15 ) )
               ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third  64)
AND 3 ) )
               ret = ret & Base64EncMap( third AND 63)
               ndx = ndx + 3
          loop
          ' check for stragglers
          if by3 < len(plain) then
            &