Google AdSense


[Java] Apache Commons Codec : encoding/decoding 라이브러리 by Sigel

HTTP 연결을 하면서 Base64로 인코딩할 일도 생겼다. 찾아보니 역시 Apache Commons 프로젝트에 쓰기 좋은 것이 있었다. Commons Codec이라는 이름의 라이브러리이고, Base64, Hex, Phonetic, URLs 등의 여러가지 encoding/decoding 기법을 제공한다.



오늘은 이를 이용하는 예제를 찾아보았다.



package com.mimul.sample;



import java.net.URLDecoder;

import org.apache.commons.codec.binary.Base64;

import org.apache.commons.codec.binary.BinaryCodec;

import org.apache.commons.codec.binary.Hex;

import org.apache.commons.codec.digest.DigestUtils;

import org.apache.commons.codec.net.BCodec;

import org.apache.commons.codec.net.QCodec;

import org.apache.commons.codec.net.URLCodec;



public class CodecTest

{

public static void main(String[] args) {

String encodedText = null;

String decodedText = null;

String clearText = "미물닷컴에 오신것을 환영합니다.";



try {

// Base64 encode/decode

encodedText = new String(Base64.encodeBase64(clearText.getBytes()));

decodedText = new String(Base64.decodeBase64(encodedText.getBytes()));

System.out.println("BASE64 Encoded: " + encodedText);

System.out.println("BASE64 Decoded:" + decodedText);



// URL encode/decode

URLCodec urlCodec = new URLCodec();

encodedText = urlCodec.encode(clearText);

decodedText = urlCodec.decode(encodedText);

System.out.println("URL Encoded: " + encodedText);

System.out.println("URL Decoded:" + decodedText);

System.out.println("URLDecoder.decode:" + URLDecoder.decode(encodedText, "utf-8"));



// MD5/SHA

String md5HexText = DigestUtils.md5Hex(clearText);

String shaHexText = DigestUtils.shaHex(clearText);

System.out.println("MD5: " + md5HexText);

System.out.println("SHA: " + shaHexText);



// Hex

encodedText = new String(Hex.encodeHex(clearText.getBytes()));

decodedText = new String(Hex.decodeHex(encodedText.toCharArray()));

System.out.println("Hexa Encoded: " + encodedText);

System.out.println("Hexa Decoded: " + decodedText);



// Binary encode/decode

BinaryCodec binaryCodec = new BinaryCodec();

byte[] bits = new byte[2];

String encodedBinary = new String(binaryCodec.encode(bits));

System.out.println("Binary Encoded: " + encodedBinary);

bits = new byte[2];

bits[0] = 0x01;

encodedBinary = new String(binaryCodec.encode(bits));

System.out.println("Binary Encoded:" + encodedBinary);



// QCodec encode/decode

QCodec qcodec = new QCodec();

encodedText = qcodec.encode(clearText);

decodedText = qcodec.decode(encodedText);

System.out.println("QCodec Encoded: " + encodedText);

System.out.println("QCodec Decoded: " + decodedText);



// BCodec encode/decode

BCodec bcodec = new BCodec();

encodedText = (String) bcodec.encode((Object) clearText);

decodedText = bcodec.decode(encodedText);

System.out.println("Encoded: " + encodedText);

System.out.println("Decoded: " + decodedText);

} catch (Throwable e) {

e.printStackTrace();

}

}

}





실행결과

BASE64 Encoded: ucy5sLTlxMS/oSC/wL3FsM3AuyDIr7+1x9W0z7TZLg==

BASE64 Decoded:미물닷컴에 오신것을 환영합니다.

URL Encoded: %EB%AF%B8%EB%AC%BC%EB%8B%B7%EC%BB%B4%EC%97%90+%EC%98%A4%EC%8B%A0%EA%B2%83%EC%9D%84+%ED%99%98%EC%98%81%ED%95%A9%EB%8B%88%EB%8B%A4.

URL Decoded:미물닷컴에 오신것을 환영합니다.

URLDecoder.decode:미물닷컴에 오신것을 환영합니다.

MD5: 9f68c3c2124a995573581ba44fca8e7e

SHA: 6ae40c444ff5ac6a82c017831dc277792d43136a

Hexa Encoded: b9ccb9b0b4e5c4c4bfa120bfc0bdc5b0cdc0bb20c8afbfb5c7d5b4cfb4d92e

Hexa Decoded: 미물닷컴에 오신것을 환영합니다.

Binary Encoded: 0000000000000000

Binary Encoded:0000000000000001

QCodec Encoded: =?UTF-8?Q?=EB=AF=B8=EB=AC=BC=EB=8B=B7=EC=BB=B4=EC=97=90 =EC=98=A4=EC=8B=A0=EA=B2=83=EC=9D=84 =ED=99=98=EC=98=81=ED=95=A9=EB=8B=88=EB=8B=A4.?=

QCodec Decoded: 미물닷컴에 오신것을 환영합니다.

Encoded: =?UTF-8?B?66+466y864u37Lu07JeQIOyYpOyLoOqyg+ydhCDtmZjsmIHtlanri4jri6Qu?=

Decoded: 미물닷컴에 오신것을 환영합니다.







출처 : Java Tips : Apache Commons Codec 라이브러리 활용


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://entireboy.egloos.com/tb/3733726 [도움말]

덧글

덧글 입력 영역