UrlBase64 (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.util.encoders

## Class UrlBase64

- java.lang.Object
- - org.bouncycastle.util.encoders.UrlBase64

-     public class UrlBase64
      extends java.lang.Object

  Convert binary data to and from UrlBase64 encoding. This is identical to Base64 encoding, except that the padding character is "." and the other non-alphanumeric characters are "-" and "_" instead of "+" and "/".

  The purpose of UrlBase64 encoding is to provide a compact encoding of binary data that is safe for use as an URL parameter. Base64 encoding does not produce encoded values that are safe for use in URLs, since "/" can be interpreted as a path delimiter; "+" is the encoded form of a space; and "=" is used to separate a name from the corresponding value in an URL parameter.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `UrlBase64()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static byte[]` | `decode(byte[] data)` Decode the URL safe base 64 encoded input data - white space will be ignored.
    `static int` | `decode(byte[] data, java.io.OutputStream out)` decode the URL safe base 64 encoded byte data writing it to the given output stream, whitespace characters will be ignored.
    `static byte[]` | `decode(java.lang.String data)` decode the URL safe base 64 encoded String data - whitespace will be ignored.
    `static int` | `decode(java.lang.String data, java.io.OutputStream out)` Decode the URL safe base 64 encoded String data writing it to the given output stream, whitespace characters will be ignored.
    `static byte[]` | `encode(byte[] data)` Encode the input data producing a URL safe base 64 encoded byte array.
    `static int` | `encode(byte[] data, java.io.OutputStream out)` Encode the byte data writing it to the given output stream.

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

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

- - ### Constructor Detail

    - #### UrlBase64

          public UrlBase64()

  - ### Method Detail

    - #### encode

          public static byte[] encode(byte[] data)

      Encode the input data producing a URL safe base 64 encoded byte array.
      Returns:
        a byte array containing the URL safe base 64 encoded data.

    - #### encode

          public static int encode(byte[] data,
                                   java.io.OutputStream out)
                            throws java.io.IOException

      Encode the byte data writing it to the given output stream.
      Returns:
        the number of bytes produced.
      Throws:
        `java.io.IOException`

    - #### decode

          public static byte[] decode(byte[] data)

      Decode the URL safe base 64 encoded input data - white space will be ignored.
      Returns:
        a byte array representing the decoded data.

    - #### decode

          public static int decode(byte[] data,
                                   java.io.OutputStream out)
                            throws java.io.IOException

      decode the URL safe base 64 encoded byte data writing it to the given output stream, whitespace characters will be ignored.
      Returns:
        the number of bytes produced.
      Throws:
        `java.io.IOException`

    - #### decode

          public static byte[] decode(java.lang.String data)

      decode the URL safe base 64 encoded String data - whitespace will be ignored.
      Returns:
        a byte array representing the decoded data.

    - #### decode

          public static int decode(java.lang.String data,
                                   java.io.OutputStream out)
                            throws java.io.IOException

      Decode the URL safe base 64 encoded String data writing it to the given output stream, whitespace characters will be ignored.
      Returns:
        the number of bytes produced.
      Throws:
        `java.io.IOException`