com.unboundid.util
Class Base32

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

@ThreadSafety(level=COMPLETELY_THREADSAFE)
public final class Base32
extends java.lang.Object

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
static byte[] decode(java.lang.String data)
          Decodes the contents of the provided base32-encoded string.
static java.lang.String decodeToString(java.lang.String data)
          Decodes the contents of the provided base32-encoded string to a string containing the raw data using the UTF-8 encoding.
static java.lang.String encode(byte[] data)
          Encodes the provided data in base32 format.
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, 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, java.lang.StringBuilder buffer)
          Appends a base32-encoded representation of the provided data to the given buffer.
static void encode(byte[] data, java.lang.StringBuilder buffer)
          Appends a base32-encoded representation of the provided data to the given buffer.
static java.lang.String encode(java.lang.String data)
          Encodes the UTF-8 representation of the provided string in base32 format.
static void encode(java.lang.String data, ByteStringBuffer buffer)
          Appends a base32-encoded version of the contents of the provided buffer (using a UTF-8 representation) to the given buffer.
static void encode(java.lang.String data, java.lang.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 Detail

encode

public static java.lang.String encode(java.lang.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

public static java.lang.String encode(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(java.lang.String data,
                          java.lang.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(java.lang.String data,
                          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(byte[] data,
                          java.lang.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(byte[] data,
                          int off,
                          int length,
                          java.lang.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(byte[] data,
                          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(byte[] data,
                          int off,
                          int length,
                          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

public static byte[] decode(java.lang.String data)
                     throws java.text.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:
java.text.ParseException - If the contents of the provided string cannot be parsed as base32-encoded data.

decodeToString

public static java.lang.String decodeToString(java.lang.String data)
                                       throws java.text.ParseException
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:
java.text.ParseException - If the contents of the provided string cannot be parsed as base32-encoded data using the UTF-8 encoding.