Package org.forgerock.util.encode
Class Hex
- java.lang.Object
-
- org.forgerock.util.encode.Hex
-
public final class Hex extends Object
Routines for encoding and decoding binary data in hexadecimal format.COMMONS-1182: Remove and replace several methods with JDK 17's HexFormat once commons is compiled with Java 17.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]
decode(String hex)
Decodes a hexadecimal-encoded string into an equivalent byte array, treating each two-character sequence as a single byte in big-endian order.static byte[]
decodeStrict(String hex)
Decodes a hexadecimal-encoded string into an equivalent byte array, treating each two-character sequence as a single byte in big-endian order.static String
encode(byte[] data)
Encodes binary data into hexadecimal format.static String
encodeLowerCase(byte[] data)
Encodes binary data into hexadecimal format using lowercase characters for 'a' to 'f'.static String
encodeUpperCase(byte[] data)
Encodes binary data into hexadecimal format using uppercase characters for 'A' to 'F'.
-
-
-
Method Detail
-
decode
public static byte[] decode(String hex)
Decodes a hexadecimal-encoded string into an equivalent byte array, treating each two-character sequence as a single byte in big-endian order. The input can use either uppercase or lowercase characters, or a combination of both. Any invalid characters in the input will be skipped. UsedecodeStrict(String)
if you want stricter decoding.- Parameters:
hex
- the input value in hexadecimal format.- Returns:
- the equivalent output bytes.
- Throws:
NullPointerException
- if the input is null.IllegalArgumentException
- if the input length, after stripping invalid characters, is not divisible by 2.
-
decodeStrict
public static byte[] decodeStrict(String hex)
Decodes a hexadecimal-encoded string into an equivalent byte array, treating each two-character sequence as a single byte in big-endian order. The input can use either uppercase or lowercase characters, or a combination of both. Any invalid characters in the input will result in anIllegalArgumentException
.- Parameters:
hex
- the input value in hexadecimal format.- Returns:
- the equivalent output bytes.
- Throws:
NullPointerException
- if the input is null.IllegalArgumentException
- if any non-hex characters occur in the input or the length is not divisible by two.
-
encodeUpperCase
public static String encodeUpperCase(byte[] data)
Encodes binary data into hexadecimal format using uppercase characters for 'A' to 'F'.- Parameters:
data
- the data to encode.- Returns:
- the hexadecimal-encoded data.
- Throws:
NullPointerException
- if the input data is null.
-
encodeLowerCase
public static String encodeLowerCase(byte[] data)
Encodes binary data into hexadecimal format using lowercase characters for 'a' to 'f'.- Parameters:
data
- the data to encode.- Returns:
- the hexadecimal-encoded data.
- Throws:
NullPointerException
- if the input data is null.
-
encode
public static String encode(byte[] data)
Encodes binary data into hexadecimal format. This method is equivalent toencodeLowerCase(byte[])
.- Parameters:
data
- the data to encode.- Returns:
- the hexadecimal-encoded data.
- Throws:
NullPointerException
- if the input data is null.
-
-