Base32 (Apache Commons Codec 1.22.1 API)
Description: declaration: package: org.apache.commons.codec.binary, class: Base32

Package org.apache.commons.codec.binary

# Class Base32

java.lang.Object
org.apache.commons.codec.binary.BaseNCodec
org.apache.commons.codec.binary.Base32

All Implemented Interfaces:
  `BinaryDecoder`, `BinaryEncoder`, `Decoder`, `Encoder`

public class Base32 extends BaseNCodec
Provides Base32 encoding and decoding as defined by RFC 4648.

The class can be parameterized in the following manner with various constructors:

- Whether to use the "base32hex" variant instead of the default "base32"
- Line length: Default 76. Line length that aren't multiples of 8 will still essentially end up being multiples of 8 in the encoded data.
- Line separator: Default is CRLF ("\r\n")

This class operates directly on byte streams, and not character streams.

This class is thread-safe.

To configure a new instance, use a `Base32.Builder`. For example:

     Base32 base32 = Base32.builder()
       .setDecodingPolicy(DecodingPolicy.LENIENT) // default is lenient
       .setLineLength(0)                          // default is none
       .setLineSeparator('\r', '\n')              // default is CR LF
       .setPadding('=')                           // default is '='
       .setEncodeTable(customEncodeTable)         // default is RFC 4648 Section 6, Table 3: The Base 32 Alphabet
       .get()

Since:
  1.5
See Also:
  - `Base32InputStream`
  - `Base32OutputStream`
  - RFC 4648

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Base32.Builder`
  Builds `Base32` instances.

  ## Nested classes/interfaces inherited from class org.apache.commons.codec.binary.BaseNCodec

  `BaseNCodec.AbstractBuilder<T,B extends BaseNCodec.AbstractBuilder<T,B>>`

- ## Field Summary

  ### Fields inherited from class org.apache.commons.codec.binary.BaseNCodec

  `DECODING_POLICY_DEFAULT, lineLength, MASK_8BITS, MIME_CHUNK_SIZE, pad, PAD, PAD_DEFAULT, PEM_CHUNK_SIZE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Base32()`
  Constructs a Base32 codec used for decoding and encoding.
  `Base32(boolean useHex)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(boolean useHex, byte padding)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(byte pad)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(int lineLength)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(int lineLength, byte[] lineSeparator)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(int lineLength, byte[] lineSeparator, boolean useHex)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(int lineLength, byte[] lineSeparator, boolean useHex, byte padding)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.
  `Base32(int lineLength, byte[] lineSeparator, boolean useHex, byte padding, CodecPolicy decodingPolicy)`
  Deprecated.
  Use `builder()` and `Base32.Builder`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static Base32.Builder`
  `builder()`
  Creates a new Builder.
  `boolean`
  `isInAlphabet(byte octet)`
  Returns whether or not the `octet` is in the Base32 alphabet.

  ### Methods inherited from class org.apache.commons.codec.binary.BaseNCodec

  `containsAlphabetOrPad, decode, decode, decode, encode, encode, encode, encodeAsString, encodeToString, ensureBufferSize, getChunkSeparator, getCodecPolicy, getDefaultBufferSize, getEncodedLength, isInAlphabet, isInAlphabet, isStrictDecoding, isWhiteSpace`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Base32

    public Base32()
    Constructs a Base32 codec used for decoding and encoding.

    When encoding the line length is 0 (no chunking).

  - ### Base32

    @Deprecated public Base32(boolean useHex)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 codec used for decoding and encoding.

    When encoding the line length is 0 (no chunking).

    Parameters:
      `useHex` -
      - If true, then use RFC 4648 Section 7, Table 4: Base 32 Encoding with Extended Hex Alphabet
      - If false, then use RFC 4648 Section 6, Table 3: The Base 32 Alphabet

  - ### Base32

    @Deprecated public Base32(boolean useHex, byte padding)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 codec used for decoding and encoding.

    When encoding the line length is 0 (no chunking).

    Parameters:
      `useHex` -
      - If true, then use RFC 4648 Section 7, Table 4: Base 32 Encoding with Extended Hex Alphabet
      - If false, then use RFC 4648 Section 6, Table 3: The Base 32 Alphabet
      `padding` - byte used as padding byte.

  - ### Base32

    @Deprecated public Base32(byte pad)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 codec used for decoding and encoding.

    When encoding the line length is 0 (no chunking).

    Parameters:
      `pad` - byte used as padding byte.

  - ### Base32

    @Deprecated public Base32(int lineLength)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 codec used for decoding and encoding.

    When encoding the line length is given in the constructor, the line separator is CRLF.

    Parameters:
      `lineLength` - Each line of encoded data will be at most of the given length (rounded down to the nearest multiple of 8). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.

  - ### Base32

    @Deprecated public Base32(int lineLength, byte[] lineSeparator)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 codec used for decoding and encoding.

    When encoding the line length and line separator are given in the constructor.

    Line lengths that aren't multiples of 8 will still essentially end up being multiples of 8 in the encoded data.

    Parameters:
      `lineLength` - Each line of encoded data will be at most of the given length (rounded down to the nearest multiple of 8). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.
      `lineSeparator` - Each line of encoded data will end with this sequence of bytes.
    Throws:
      `IllegalArgumentException` - Thrown when the `lineSeparator` contains Base32 characters.

  - ### Base32

    @Deprecated public Base32(int lineLength, byte[] lineSeparator, boolean useHex)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 / Base32 Hex codec used for decoding and encoding.

    When encoding the line length and line separator are given in the constructor.

    Line lengths that aren't multiples of 8 will still essentially end up being multiples of 8 in the encoded data.

    Parameters:
      `lineLength` - Each line of encoded data will be at most of the given length (rounded down to the nearest multiple of 8). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.
      `lineSeparator` - Each line of encoded data will end with this sequence of bytes.
      `useHex` -
      - If true, then use RFC 4648 Section 7, Table 4: Base 32 Encoding with Extended Hex Alphabet
      - If false, then use RFC 4648 Section 6, Table 3: The Base 32 Alphabet
    Throws:
      `IllegalArgumentException` - Thrown when the `lineSeparator` contains Base32 characters. Or the lineLength > 0 and lineSeparator is null.

  - ### Base32

    @Deprecated public Base32(int lineLength, byte[] lineSeparator, boolean useHex, byte padding)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 / Base32 Hex codec used for decoding and encoding.

    When encoding the line length and line separator are given in the constructor.

    Line lengths that aren't multiples of 8 will still essentially end up being multiples of 8 in the encoded data.

    Parameters:
      `lineLength` - Each line of encoded data will be at most of the given length (rounded down to the nearest multiple of 8). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.
      `lineSeparator` - Each line of encoded data will end with this sequence of bytes.
      `useHex` -
      - If true, then use RFC 4648 Section 7, Table 4: Base 32 Encoding with Extended Hex Alphabet
      - If false, then use RFC 4648 Section 6, Table 3: The Base 32 Alphabet
      `padding` - padding byte.
    Throws:
      `IllegalArgumentException` - Thrown when the `lineSeparator` contains Base32 characters. Or the lineLength > 0 and lineSeparator is null.

  - ### Base32

    @Deprecated public Base32(int lineLength, byte[] lineSeparator, boolean useHex, byte padding, CodecPolicy decodingPolicy)
    Deprecated.
    Use `builder()` and `Base32.Builder`.
    Constructs a Base32 / Base32 Hex codec used for decoding and encoding.

    When encoding the line length and line separator are given in the constructor.

    Line lengths that aren't multiples of 8 will still essentially end up being multiples of 8 in the encoded data.

    Parameters:
      `lineLength` - Each line of encoded data will be at most of the given length (rounded down to the nearest multiple of 8). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.
      `lineSeparator` - Each line of encoded data will end with this sequence of bytes.
      `useHex` -
      - If true, then use RFC 4648 Section 7, Table 4: Base 32 Encoding with Extended Hex Alphabet
      - If false, then use RFC 4648 Section 6, Table 3: The Base 32 Alphabet
      `padding` - padding byte.
      `decodingPolicy` - The decoding policy.
    Throws:
      `IllegalArgumentException` - Thrown when the `lineSeparator` contains Base32 characters. Or the lineLength > 0 and lineSeparator is null.
    Since:
      1.15

- ## Method Details

  - ### builder

    public static Base32.Builder builder()
    Creates a new Builder.

    To configure a new instance, use a `Base32.Builder`. For example:

         Base32 base32 = Base32.builder()
           .setDecodingPolicy(DecodingPolicy.LENIENT) // default is lenient
           .setLineLength(0)                          // default is none
           .setLineSeparator('\r', '\n')              // default is CR LF
           .setPadding('=')                           // default is '='
           .setEncodeTable(customEncodeTable)         // default is RFC 4648 Section 6, Table 3: The Base 32 Alphabet
           .get()

    Returns:
      A new Builder.
    Since:
      1.17.0

  - ### isInAlphabet

    public boolean isInAlphabet(byte octet)
    Returns whether or not the `octet` is in the Base32 alphabet.
    Specified by:
      `isInAlphabet` in class `BaseNCodec`
    Parameters:
      `octet` - The value to test.
    Returns:
      `true` if the value is defined in the Base32 alphabet `false` otherwise.