'hex'에 해당되는 글 1건

  1. 2009.02.16 hex string <-> byte array 변환 (7)

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();
    }

신고
Posted by 에코지오

댓글을 달아 주세요

  1. BlogIcon YG 2009.02.17 00:30 신고  댓글주소  수정/삭제  댓글쓰기

    단순히 드는 생각이고 확인은 해봐야겠지만 코드는 깔끔해졌지만 memory footprint가 조금 더 많을 것 같네요.

    블로그 재미있게 잘 보고 있습니다. :)

  2. BlogIcon 에코지오 2009.02.27 12:25 신고  댓글주소  수정/삭제  댓글쓰기

    주의!!!!
    hex로 표현된 암호화 데이터를 byte로 변환시 java.math.BigInteger를 쓰면 안되는 이유 : http://forums.sun.com/thread.jspa?threadID=5237100

  3. saintshine 2009.06.12 13:14 신고  댓글주소  수정/삭제  댓글쓰기

    byte[]->String으로 변환했다가 다시 String->byte[]으로 변환하는 과정에서
    원래 데이터가 복구 되지 않아 애먹고 있었는데 ㅇㅅㅇ;
    덕분에 해결했습니다 ^^

  4. BlogIcon shinlucky 2010.02.05 00:08 신고  댓글주소  수정/삭제  댓글쓰기

    저도 노가다 아래 코드로 할려고 했는데
    짧은 코드에 한표를 던지고 싶군요.
    거기다 주의할 점도 알려주셔서 감사해요! ㅋ
    인증관련해서 쓸려는데, 아마 byte를 string으로는 필요한데 string을 다시 byte로 할 일은 없을 것 같네요~

  5. BlogIcon 딴따라. 2012.11.19 13:44 신고  댓글주소  수정/삭제  댓글쓰기

    new BigInteger(new byte[0]); // 에러 나네요?

  6. Andrew 2013.04.19 14:30 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 메소드 인데요, HEX의 첫번째 byte가 00일때 00이 무시되는 현상이 발생되네요. 00까지도 보존하고 싶다면 Biginteger를 사용하면 안되는걸까요



티스토리 툴바