Class Base32

java.lang.Object
com.unboundid.util.Base32

This class provides methods for encoding and decoding data in base32 as defined in RFC 4648. It provides a somewhat compact way of representing binary data using only printable characters (a subset of ASCII letters and numeric digits selected to avoid ambiguity, like confusion between the number 1 and the uppercase letter I, and between the number 0 and the uppercase letter O). It uses a five-bit encoding mechanism in which every five bytes of raw data is converted into eight bytes of base32-encoded data.

Example

The following examples demonstrate the process for base32-encoding raw data, and for decoding a string containing base32-encoded data back to the raw data used to create it:
 // Base32-encode some raw data:
 String base32String = Base32.encode(rawDataBytes);

 // Decode a base32 string back to raw data:
 byte[] decodedRawDataBytes;
 try
 {
   decodedRawDataBytes = Base32.decode(base32String);
 }
 catch (ParseException pe)
 {
   // The string did not represent a valid base32 encoding.
   decodedRawDataBytes = null;
 }
 
  • Method Summary

    Modifier and Type
    Method
    Description
    static byte[]
    decode(String data)
    Decodes the contents of the provided base32-encoded string.
    static String
    Decodes the contents of the provided base32-encoded string to a string containing the raw data using the UTF-8 encoding.
    static String
    encode(byte[] data)
    Encodes the provided data in base32 format.
    static void
    encode(byte[] data, int off, int length, ByteStringBuffer buffer)
    Appends a base32-encoded representation of the provided data to the given buffer.
    static void
    encode(byte[] data, int off, int length, StringBuilder buffer)
    Appends a base32-encoded representation of the provided data to the given buffer.
    static void
    encode(byte[] data, ByteStringBuffer buffer)
    Appends a base32-encoded representation of the provided data to the given buffer.
    static void
    encode(byte[] data, StringBuilder buffer)
    Appends a base32-encoded representation of the provided data to the given buffer.
    static String
    encode(String data)
    Encodes the UTF-8 representation of the provided string in base32 format.
    static void
    Appends a base32-encoded version of the contents of the provided buffer (using a UTF-8 representation) to the given buffer.
    static void
    encode(String data, StringBuilder buffer)
    Appends a base32-encoded version of the contents of the provided buffer (using a UTF-8 representation) to the given buffer.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • encode

      @NotNull public static String encode(@NotNull String data)
      Encodes the UTF-8 representation of the provided string in base32 format.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      Returns:
      The base32-encoded representation of the provided data.
    • encode

      @NotNull public static String encode(@NotNull byte[] data)
      Encodes the provided data in base32 format.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      Returns:
      The base32-encoded representation of the provided data.
    • encode

      public static void encode(@NotNull String data, @NotNull StringBuilder buffer)
      Appends a base32-encoded version of the contents of the provided buffer (using a UTF-8 representation) to the given buffer.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      buffer - The buffer to which the base32-encoded data is to be written.
    • encode

      public static void encode(@NotNull String data, @NotNull ByteStringBuffer buffer)
      Appends a base32-encoded version of the contents of the provided buffer (using a UTF-8 representation) to the given buffer.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      buffer - The buffer to which the base32-encoded data is to be written.
    • encode

      public static void encode(@NotNull byte[] data, @NotNull StringBuilder buffer)
      Appends a base32-encoded representation of the provided data to the given buffer.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      buffer - The buffer to which the base32-encoded data is to be written.
    • encode

      public static void encode(@NotNull byte[] data, int off, int length, @NotNull StringBuilder buffer)
      Appends a base32-encoded representation of the provided data to the given buffer.
      Parameters:
      data - The array containing the raw data to be encoded. It must not be null.
      off - The offset in the array at which the data to encode begins.
      length - The number of bytes to be encoded.
      buffer - The buffer to which the base32-encoded data is to be written.
    • encode

      public static void encode(@NotNull byte[] data, @NotNull ByteStringBuffer buffer)
      Appends a base32-encoded representation of the provided data to the given buffer.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      buffer - The buffer to which the base32-encoded data is to be written.
    • encode

      public static void encode(@NotNull byte[] data, int off, int length, @NotNull ByteStringBuffer buffer)
      Appends a base32-encoded representation of the provided data to the given buffer.
      Parameters:
      data - The raw data to be encoded. It must not be null.
      off - The offset in the array at which the data to encode begins.
      length - The number of bytes to be encoded.
      buffer - The buffer to which the base32-encoded data is to be written.
    • decode

      @NotNull public static byte[] decode(@NotNull String data) throws ParseException
      Decodes the contents of the provided base32-encoded string.
      Parameters:
      data - The base32-encoded string to decode. It must not be null.
      Returns:
      A byte array containing the decoded data.
      Throws:
      ParseException - If the contents of the provided string cannot be parsed as base32-encoded data.
    • decodeToString

      Decodes the contents of the provided base32-encoded string to a string containing the raw data using the UTF-8 encoding.
      Parameters:
      data - The base32-encoded string to decode. It must not be null.
      Returns:
      A string containing the decoded data.
      Throws:
      ParseException - If the contents of the provided string cannot be parsed as base32-encoded data using the UTF-8 encoding.