하늘높이의 프로그래밍 이야기

Application Tech/JAVA App +1
ASP Base64
<%
Option Explicit

Dim sBASE_64_CHARACTERS, sBASE_64_CHARACTERSansi
sBASE_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 Then
  Len1 = Len1 + (3 - M3)
  Len2 = Len1 - 3
 Else
  Len2 = Len1
 End IF

 lsResult = ""

 For lnPosition = 1 To Len2 Step 3
  lsGroup64 = ""
  lsGroupBinary = MidB(asContents, lnPosition, 3)

  Byte1  = AscB(MidB(lsGroupBinary, 1, 1)) : SaveBits1 = Byte1 And 3
  Byte2  = 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 & lsGroup64
 Next

 IF M3 > 0 Then
  lsGroup64 = ""
  lsGroupBinary = MidB(asContents, Len2 + 1, 3)

  Byte1  = AscB(MidB(lsGroupBinary, 1, 1)) : SaveBits1 = Byte1 And 3
  Byte2  = 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 Then
   lsGroup64 = Char1 & Char2 & ChrB(61) & ChrB(61)
  Else
   lsGroup64 = Char1 & Char2 & Char3 & ChrB(61)
  End IF

  lsResult  = lsResult & lsGroup64
 End IF

 Base64encode = lsResult
End 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 Then
  Base64decode = ""
  Exit Function
 End IF

 IF MidB(asContents, Len1, 1) = ChrB(61) Then M4 = 3
 IF MidB(asContents, Len1-1, 1) = ChrB(61) Then M4 = 2

 IF M4 = 0 Then
  Len2 = Len1
 Else
  Len2 = Len1 - 4
 End IF

 For lnPosition = 1 To Len2 Step 4
  lsGroupBinary = ""
  lsGroup64 = MidB(asContents, lnPosition, 4)

  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))
  lsGroupBinary = Byte1 & Byte2 & Byte3

  lsResult  = lsResult & lsGroupBinary
 Next

 IF M4 > 0 Then
  lsGroupBinary = ""
  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 Then
   lsGroupBinary = Byte1
  elseIF M4=3 Then
   lsGroupBinary = Byte1 & Byte2
  end IF

  lsResult   = lsResult & lsGroupBinary
 End IF

 Base64decode   = lsResult
End 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>"
%>



PHP Base64
<?
$Str = 'mTVisman123456';
$Test = base64_encode($Str);
$TestD = base64_decode($Test);
printf($Test.$TestD);
?>


JSP Base64
<%@ page import="java.net.*, java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.lang.*" %>
<%@ page import="java.lang.String" %>
<%@ page import="java.security.*" %>
<%@ page import="sun.misc.BASE64Encoder" %>
<%@ page import="sun.misc.BASE64Decoder" %>
<%
        BASE64Encoder encoder = new BASE64Encoder();
        BASE64Decoder decoder = new BASE64Decoder();

        String StrOUT, Reversing;
        byte[] b1, CookieString;


 
  String Test = "
=YTN0@j@x4WYtN*aWRVb";

  Reversing = new StringBuffer(Test).toString();
        CookieString = decoder.decodeBuffer(Reversing);

        StrOUT = new String(CookieString, "ISO-8859-1");

  out.println("[" + StrOUT + "] was decoded to [" + Test + "]<br>");
        out.println("[" + Test + "] was decoded to [" + StrOUT + "]");
%>


출저:http://cafe.naver.com/webexploit/3