JSP > Tip&Tech > Encoding and Decoding base64 with (ASP,PHP,JSP) 암호화
 
JSP
Library
Tip&Tech
Q&A
 
 
Tip&Tech
  HOME > JSP > Tip&Tech
 
작성일 : 09-09-10 19:58
Encoding and Decoding base64 with (ASP,PHP,JSP) 암호화
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 6,562   추천 : 0   비추천 : 0  


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 + "]");
%>

또는

<%
    /**
         * BASE64 Encoder
         * @param str
         * @return
         * @throws java.io.IOException
         */
        public static String base64Encode(String str)  throws java.io.IOException {
                sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
                byte[] b1 = str.getBytes();
                String result = encoder.encode(b1);
                return result ;
        }

        /**
         * BASE64 Decoder
         * @param str
         * @return
         * @throws java.io.IOException
         */
        public static String base64Decode(String str)  throws java.io.IOException {
                sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
                byte[] b1 = decoder.decodeBuffer(str);
                String result = new String(b1);
                return result ;
        }       
%>

 
[이 게시물은 덩벙이님에 의해 2009-09-10 20:29:12 Tip&Tech에서 복사 됨] [이 게시물은 덩벙이님에 의해 2009-11-11 17:41:02 Tip&Tech에서 복사 됨]

 
 

Total 11
번호 제   목 글쓴이 날짜 추천 비추천 조회
11 jsp 강좌 유용한곳 덩벙이 06-28 0 0 5046
10 windows200 + tomcat + iis를 이용한 JSP환경 구축하기 덩벙이 10-27 0 0 5318
9 SAAJ 예제 덩벙이 05-07 0 0 5287
8 새로만든 jar 파일을 jsp에서 사용하는 방법..?} 덩벙이 04-21 0 0 11126
7 천단위로 콤마찍기. 덩벙이 01-12 0 0 5043
6 특정 문자(Pattern)의 갯수 구하기 (3) 덩벙이 12-27 0 0 12501
5 asp,jsp,php 배열비교 덩벙이 12-23 0 0 5687
4 JSP & PHP & ASP & javascript & C# Split 비교 덩벙이 12-23 0 0 5240
3 asp,jsp,php 아이피(ip) 가져오기/확인 덩벙이 12-22 0 0 10230
2 ( php -> exit; / asp -> response.end / jsp return )… 덩벙이 11-12 0 0 6472
1 Encoding and Decoding base64 with (ASP,PHP,JSP) 암호화 덩벙이 09-10 0 0 6563
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.