1. hex string -> byte array
byte[] bytes = new java.math.BigInteger(hexText, 16).toByteArray();
2. byte array -> hex string
String hexText = new java.math.BigInteger(bytes).toString(16);
아래처럼 머리 아픈 코드를 안봐도 되니 편하네요. thanks BigInteger! ^^
public static String toHexString(byte buf[]){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < buf.length; i++) {
sb.append(Integer.toHexString(0x0100 + (buf[i] & 0x00FF)).substring(1));
}
return sb.toString();
}
참조: http://ecogeo.tistory.com/129
그러나 BigInteger를 사용하여 hex string을 byte array로 변환시킬 경우, 변환된 byte array의 앞 부분에 값이 0인 바이트가 들어갈 수 있다. 이 점 주의해야 한다.
그러나 BigInteger를 사용하여 hex string을 byte array로 변환시킬 경우, 변환된 byte array의 앞 부분에 값이 0인 바이트가 들어갈 수 있다. 이 점 주의해야 한다.
댓글 없음:
댓글 쓰기