| <% Option Explicit
 Dim sBASE_64_CHARACTERS, sBASE_64_CHARACTERSansisBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
 sBASE_64_CHARACTERSansi = strUnicode2Ansi(sBASE_64_CHARACTERS)
 Function strUnicodeLen(asContents)Dim asContents1 : asContents1 ="a" & asContents
 Dim Len1  : Len1=Len(asContents1)
 Dim K  : K=0
 Dim I, Asc1
 
 For I=1 To Len1
 Asc1 = asc(mid(asContents1,I,1))
 IF Asc1 < 0 Then Asc1 = 65536 + Asc1
 IF Asc1 > 255 Then
 K = K + 2
 ELSE
 K = K + 1
 End IF
 Next
 
 strUnicodeLen = K - 1
 End Function
 Function strUnicode2Ansi(asContents)Dim Len1   : Len1 = Len(asContents)
 Dim I, VarCHAR, VarASC, VarHEX, VarLOW, VarHIGH
  strUnicode2Ansi = ""
 For I = 1 to Len1
 VarCHAR = Mid(asContents,I,1)
 VarASC = Asc(VarCHAR)
 IF VarASC < 0 Then VarASC = VarASC + 65536
 IF VarASC > 255 Then
 VarHEX  = Hex(VarASC)
 VarLOW  = Left(VarHEX,2)
 VarHIGH  = Right(VarHEX,2)
 strUnicode2Ansi = strUnicode2Ansi & ChrB("&H" & VarLOW ) & ChrB("&H" & VarHIGH )
 Else
 strUnicode2Ansi = strUnicode2Ansi & ChrB(VarASC)
 End IF
 Next
 End Function
   Function strAnsi2Unicode(asContents)Dim Len1   : Len1  = LenB(asContents)
 Dim VarCHAR, VarASC, I
  strAnsi2Unicode = ""
 IF Len1=0 Then Exit Function
 
 For I=1 To Len1
 VarCHAR = MidB(asContents,I,1)
 VarASC = AscB(VarCHAR)
 IF VarASC > 127 Then
 strAnsi2Unicode = strAnsi2Unicode & Chr(AscW(MidB(asContents, I+1,1) & VarCHAR))
 I  = I + 1
 Else
 strAnsi2Unicode = strAnsi2Unicode & Chr(VarASC)
 End IF
 Next
 
 End function
 Function Base64encode(asContents)Dim lnPosition
 Dim lsResult
 Dim Char1
 Dim Char2
 Dim Char3
 Dim Char4
 Dim Byte1
 Dim Byte2
 Dim Byte3
 Dim SaveBits1
 Dim SaveBits2
 Dim lsGroupBinary
 Dim lsGroup64
 Dim M3, M4, Len1, Len2
  Len1   =LenB(asContents)
 IF Len1 < 1 Then
 Base64encode = ""
 Exit Function
 End IF
  M3=Len1 Mod 3
 IF M3 > 0 Then asContents = asContents & String(3 - M3, ChrB(0))
  IF m3 > 0 ThenLen1 = Len1 + (3 - M3)
 Len2 = Len1 - 3
 Else
 Len2 = Len1
 End IF
  lsResult = ""  For lnPosition = 1 To Len2 Step 3lsGroup64 = ""
 lsGroupBinary = MidB(asContents, lnPosition, 3)
   Byte1  = AscB(MidB(lsGroupBinary, 1, 1)) : SaveBits1 = Byte1 And 3Byte2  = AscB(MidB(lsGroupBinary, 2, 1)) : SaveBits2 = Byte2 And 15
 Byte3  = AscB(MidB(lsGroupBinary, 3, 1))
   Char1  = MidB(sBASE_64_CHARACTERSansi, ((Byte1 And 252) \ 4) + 1, 1)Char2  = MidB(sBASE_64_CHARACTERSansi, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
 Char3  = MidB(sBASE_64_CHARACTERSansi, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
 Char4  = MidB(sBASE_64_CHARACTERSansi, (Byte3 And 63) + 1, 1)
 lsGroup64 = Char1 & Char2 & Char3 & Char4
   lsResult  = lsResult & lsGroup64Next
  IF M3 > 0 ThenlsGroup64 = ""
 lsGroupBinary = MidB(asContents, Len2 + 1, 3)
   Byte1  = AscB(MidB(lsGroupBinary, 1, 1)) : SaveBits1 = Byte1 And 3Byte2  = AscB(MidB(lsGroupBinary, 2, 1)) : SaveBits2 = Byte2 And 15
 Byte3  = AscB(MidB(lsGroupBinary, 3, 1))
   Char1  = MidB(sBASE_64_CHARACTERSansi, ((Byte1 And 252) \ 4) + 1, 1)Char2  = MidB(sBASE_64_CHARACTERSansi, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
 Char3  = MidB(sBASE_64_CHARACTERSansi, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
   IF M3=1 ThenlsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61)
 Else
 lsGroup64 = Char1 & Char2 & Char3 & ChrB(61)
 End IF
   lsResult  = lsResult & lsGroup64End IF
  Base64encode = lsResultEnd Function
 
 Function Base64decode(asContents)
 Dim lsResult
 Dim lnPosition
 Dim lsGroup64, lsGroupBinary
 Dim Char1, Char2, Char3, Char4
 Dim Byte1, Byte2, Byte3
 Dim M4, Len1, Len2
  Len1 = LenB(asContents)M4 = Len1 Mod 4
  IF Len1 < 1 Or M4 > 0 ThenBase64decode = ""
 Exit Function
 End IF
  IF MidB(asContents, Len1, 1) = ChrB(61) Then M4 = 3IF MidB(asContents, Len1-1, 1) = ChrB(61) Then M4 = 2
  IF M4 = 0 ThenLen2 = Len1
 Else
 Len2 = Len1 - 4
 End IF
  For lnPosition = 1 To Len2 Step 4lsGroupBinary = ""
 lsGroup64 = MidB(asContents, lnPosition, 4)
   Char1  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 1, 1)) - 1Char2  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 2, 1)) - 1
 Char3  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 3, 1)) - 1
 Char4  = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 4, 1)) - 1
   Byte1  = ChrB(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)Byte2  = lsGroupBinary & ChrB(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
 Byte3  = ChrB((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
 lsGroupBinary = Byte1 & Byte2 & Byte3
   lsResult  = lsResult & lsGroupBinaryNext
  IF M4 > 0 ThenlsGroupBinary = ""
 lsGroup64 = MidB(asContents, Len2 + 1, M4) & ChrB(65)
 IF M4=2 Then
 lsGroup64 = lsGroup64 & chrB(65)
 End IF
 Char1 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 1, 1)) - 1
 Char2 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 2, 1)) - 1
 Char3 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 3, 1)) - 1
 Char4 = InStrB(sBASE_64_CHARACTERSansi, MidB(lsGroup64, 4, 1)) - 1
   Byte1 = ChrB(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)Byte2 = lsGroupBinary & ChrB(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
 Byte3 = ChrB((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
   IF M4=2 ThenlsGroupBinary = Byte1
 elseIF M4=3 Then
 lsGroupBinary = Byte1 & Byte2
 end IF
   lsResult   = lsResult & lsGroupBinaryEnd IF
  Base64decode   = lsResultEnd Function
   Dim ORIGNvalue : ORIGNvalue = "mTVisman123456"
 Dim EncodeA : EncodeA = StrReverse(strAnsi2Unicode(Base64encode(strUnicode2Ansi(ORIGNvalue))))
 Dim DecodeA : DecodeA = strAnsi2Unicode(Base64decode(strUnicode2Ansi(StrReverse(EncodeA))))
 response.write "[" & DecodeA & "] was encoded to [" & EncodeA & "]<BR>"response.write "[" & EncodeA & "] was decoded to [" & DecodeA & "]<BR>"
 %>
 |