암호화를 하라고한다. md5 귀찮다 Base64 Encoding 해서 못알아보게 만 한다. ㅋㅋ
 
ex1) Java Package
/**
 * Base64Utils.java
 *
 * Created on 2007년 10월 16일 (화), 오후 2:22
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package fuel.Util;

import sun.misc.*;
import java.io.*;

/**
 *
 * @author ilu
 */

public class Base64Utils
{
    
    /** Creates a new instance of Base64Utils */
    public Base64Utils()
    {
    }
    
    /**
     * Base64Encoding 방식으로 바이트 배열을 아스키 문자열로 인코딩한다.
     * In-Binany, Out-Ascii
     *
     * @param encodeBytes  인코딩할 바이트 배열(byte[])
     * @return  인코딩된 아스키 문자열(String)
     */
    
    public static String encode(byte[] encodeBytes)
    {
        byte[] buf = null;
        String strResult = null;
        
        BASE64Encoder base64Encoder = new BASE64Encoder();
        ByteArrayInputStream bin = new ByteArrayInputStream(encodeBytes);
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        
        try
        {
            base64Encoder.encodeBuffer(bin, bout);
        }
        catch (Exception e)
        {
            System.out.println("Exception");
            e.printStackTrace();
        }
        buf = bout.toByteArray();
        strResult = new String(buf).trim();
        return strResult;
    }
    
    /**
     * Base64Decoding 방식으로 아스키 문자열을 바이트 배열로 디코딩한다.
     * In-Ascii, Out-Binany
     *
     * @param  strDecode 디코딩할 아스키 문자열(String)
     * @return  디코딩된 바이트 배열(byte[])
     */

    public static byte[] decode(String strDecode)
    {
        byte[] buf = null;
        
        BASE64Decoder base64Decoder = new BASE64Decoder();
        ByteArrayInputStream bin = new ByteArrayInputStream(strDecode.getBytes());
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        
        try
        {
            base64Decoder.decodeBuffer(bin, bout);
        }
        catch (Exception e)
        {
            System.out.println("Exception");
            e.printStackTrace();
        }
        buf = bout.toByteArray();
        return buf;
    }
//    public static void main(String args[])
//    {
//        String strOrgin = "Monky";
//        String strDecode = null;
//        byte[] bytOrgin = strOrgin.getBytes();
//        System.out.println("OriginString=" + strOrgin);
//        
//        String strEncoded = Base64Utils.encode(bytOrgin);
//        System.out.println("EncodedString=" + strEncoded);
//        
//        byte[] bytDecoded = Base64Utils.decode(strEncoded);
//        strDecode = new String(bytDecoded);
//        System.out.println("DecodedString=" + strDecode);
//    }
    
}

ex2) Java Script (Base64 Encoding 공식을 이용)
/*  Encode & Decode Javascript */
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {

   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}




function decode64(input) 
{
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}
function encode64Han(str) 
{
  return encode64(escape(str))
}
function decode64Han(str) 
{
  return unescape(decode64(str))
}
사실 좀더 빡시게 할려면 여기서 암호화를 한번 더해야하는데 하지못햇슴 뭐 SSL로 보안을 하고있는데 또 암호화를 하라니. 이런 젠장. Base64 Encoding 은 암호화하기 전에 실행하는 암호화 전단계로 알고있슴.
Posted by ilus


,