Skip to content

martylamb/martian-hex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Important Notice: Repository History Change on 2023-11-13

martian-hex

Simple tools for encoding binary to hexadecimal and hexadecimal to binary.

Separate HexEncoder (for binary to hex) and HexDecoder (hex to binary) interfaces are provided, as well as HexCodec (both directions).

Several implementations are provided supporting several different hex formats, plus adapters for defining your own. Predefined HexCodecs can be found in StandardHexCodecs.java.

Static methods provided by Hex.java provide quick access to the StandardHexCodecs.DEFAULT HexCodec.

Encoding and Decoding

Encoding methods accept binary via byte arrays and InputStreams and can return Strings or encode directly to PrintStreams or PrintWriters. See HexEncoder.java for all encoding options.

Decoding methods accept hexadecimal in Strings or Readers and can return byte arrays or decode directly to OutputStreams. See HexDecoder.java for all decoding options.

Usage Examples

Bytes to Simple Hex

// byte array to string
byte[] b = "Here is an example.".getBytes();

System.out.println(Hex.encode(b)); // equivalent to StandardHexCodecs.DEFAULT.encode

Output: 4865726520697320616e206578616d706c652e

Simple Hex to Bytes

byte[] b = Hex.decode("4865726520697320616e206578616d706c652e");
System.out.println(new String(b)); // equivalent to StandardHexCodecs.DEFAULT.decode

Output: Here is an example.

Delimited by Colons, 16 bytes per line

String s = "Here is an example.";
StandardHexCodecs.SIMPLE.encode(s.getBytes(), System.out); // the same HexCodec can decode this back to binary as well

Output: 48:65:72:65:20:69:73:20:61:6e:20:65:78:61:6d:70 6c:65:2e

Hex Dump

byte[] b = new byte[67];
Random r = new Random();
r.nextBytes(b);
StandardHexCodecs.HEXDUMP.encode(b, System.out); // the same HexCodec can decode this back to binary as well

Output:

00000000: c9 85 90 e5 3c ca 13 72   82 52 5b c9 39 92 4b 41   ....<..r.R[.9.KA
00000010: b9 a8 f8 9a e9 53 0d a3   18 84 2e c0 8a 80 b5 aa   .....S..........
00000020: af b5 cf b5 25 2a 36 c3   52 ff b1 f2 b4 ae 13 33   ....%*6.R......3
00000030: bf 33 8d ed 17 9c 62 a0   91 80 fc 67 d0 8e 5d 6f   .3....b....g..]o
00000040: 8f af 85    

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages