Java

[Java] Hex 인코딩 디코딩 방법 (16진수)

펭귄코기 2023. 6. 14. 13:30

1. 자바 6이상 기본 라이브러리

11버전 부터 분리되어 외부 라이브러리로 주입받아 사용해야함
import java.io.UnsupportedEncodingException;
import javax.xml.bind.DatatypeConverter;

public class HexClassImportConverter {

	public static void main(String[] args) throws UnsupportedEncodingException {
		
		String testText = "hex Test Text";
		byte[] testToBytes = testText.getBytes("UTF-8");
		
		//Hex 인코딩(Byte To String)
		String encodeHexString = DatatypeConverter.printHexBinary(testToBytes);
		
		//Hex 디코딩(String to Byte)
		byte[] decodeHexByte = DatatypeConverter.parseHexBinary(encodeHexString);
		
		System.out.println("인코딩 전: " + testText);
		System.out.println("인코딩: " + encodeHexString);
		System.out.println("디코딩: " + new String(decodeHexByte));	
	}
	
}

 

2. Apache Commons 라이브러리

import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;

public class HexClassImportApache {

	public static void main(String[] args) throws UnsupportedEncodingException, DecoderException {
    
		String testText = "hex Test Text";
		byte[] testToBytes = testText.getBytes("UTF-8");
	
		//Hex 인코딩(Byte To String)
		String encodeHexString = Hex.encodeHexString(testToBytes);
        
 		//Hex 인코딩(Byte To Char)
 		char[] encodeHexChar = Hex.encodeHex(testToBytes);
        
 		//Hex 디코딩
		byte[] decodeHexByte = Hex.decodeHex(encodeHexString.toCharArray());

		System.out.println("인코딩 전: " + testText);
		System.out.println("인코딩(String): " + encodeHexString);
		System.out.println("인코딩(Char): " + new String(encodeHexChar));
		System.out.println("디코딩: " + new String(decodeHexByte));
	}

}