public abstract class Base64

  1. Object
  2. Base64
This class implements Base64 encoding/decoding functionality as specified in RFC 2045 (http://www.ietf.org/rfc/rfc2045.txt).

Constructors

public Base64()

Methods

public static byte[] decode(byte[] in)
public static byte[] decode(byte[] in, int len)Decodes an array of bytes containing a Base64 ascii string into binary data
public static int decode(byte[] in, int len, byte[] out)Decodes Base64 input into a caller-provided output buffer.
public static int decode(byte[] in, byte[] out)
public static String encode(byte[] in)Encodes the given array as a base64 string
public static String encodeNoNewline(byte[] in)Encodes the given array as a base64 string without breaking lines
public static String encodeUrlSafe(byte[] in)URL-safe Base64 encoding per RFC 4648 sec5: + becomes -, / becomes _, and the trailing = padding is dropped.
public static byte[] decodeUrlSafe(String s)Decodes a URL-safe Base64 string (RFC 4648 sec5).
public static int encodeNoNewline(byte[] in, byte[] out)Encodes input into a caller-provided output buffer without line breaks.
public static int encodeNoNewlineSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset)SIMD-optimized Base64 encoding with explicit offsets.
public static int encodeNoNewlineSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset, int[] scratch)Compatibility overload that ignores the legacy scratch parameter.
public static int decodeNoWhitespaceSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset)SIMD-optimized Base64 decoding for no-whitespace input.
public static int decodeNoWhitespaceSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset, int[] scratch)Compatibility overload that ignores the legacy scratch parameter.
public static int encodeNoNewlineSimd(byte[] in, byte[] out)Convenience overload for encodeNoNewlineSimd(byte[], int, int, byte[], int) using zero offsets.
public static int encodeNoNewlineSimd(byte[] in, byte[] out, int[] scratch)Convenience overload for encodeNoNewlineSimd(byte[], int, int, byte[], int) that preserves the legacy scratch-bearing signature.
public static int decodeNoWhitespaceSimd(byte[] in, int len, byte[] out)Convenience overload for decodeNoWhitespaceSimd(byte[], int, int, byte[], int) using zero input offset.
public static int decodeNoWhitespaceSimd(byte[] in, int len, byte[] out, int[] scratch)Convenience overload for decodeNoWhitespaceSimd(byte[], int, int, byte[], int) that preserves the legacy scratch-bearing signature.

Inherited methods

Constructor details

Base64

public Base64()

Method details

decode

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

decode

public static byte[] decode(byte[] in, int len)
Decodes an array of bytes containing a Base64 ascii string into binary data

Parameters

in byte[]
the array
len int
the length of the array

Returns

the decoded array

decode

public static int decode(byte[] in, int len, byte[] out)
Decodes Base64 input into a caller-provided output buffer.

Parameters

in byte[]
Base64 bytes
len int
bytes from in to decode
out byte[]
destination buffer

Returns

decoded length, or -1 for invalid Base64

decode

public static int decode(byte[] in, byte[] out)

encode

public static String encode(byte[] in)
Encodes the given array as a base64 string

Parameters

in byte[]
the array to encode

Returns

the String containing the array

encodeNoNewline

public static String encodeNoNewline(byte[] in)
Encodes the given array as a base64 string without breaking lines

Parameters

in byte[]
the array to encode

Returns

the String containing the array

encodeUrlSafe

public static String encodeUrlSafe(byte[] in)
URL-safe Base64 encoding per RFC 4648 sec5: + becomes -, / becomes _, and the trailing = padding is dropped. This is the encoding used by JWTs and most modern web token formats. Reuses the same SIMD-optimized encode path as [#encodeNoNewline(byte[])] under the hood, so it is just as fast.

Parameters

in byte[]
the array to encode

Returns

the URL-safe Base64 string with no padding

decodeUrlSafe

public static byte[] decodeUrlSafe(String s)
Decodes a URL-safe Base64 string (RFC 4648 sec5). Padding is optional – the canonical URL-safe form drops it, but this method also accepts strings that still carry trailing =.

Parameters

s String
URL-safe Base64 string

Returns

the decoded bytes

encodeNoNewline

public static int encodeNoNewline(byte[] in, byte[] out)
Encodes input into a caller-provided output buffer without line breaks.

Parameters

in byte[]
input bytes
out byte[]
destination buffer

Returns

number of bytes written to out

encodeNoNewlineSimd

public static int encodeNoNewlineSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset)
SIMD-optimized Base64 encoding with explicit offsets. Uses generic SIMD byte primitives over a single caller-invisible scratch slab.

encodeNoNewlineSimd

public static int encodeNoNewlineSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset, int[] scratch)
Compatibility overload that ignores the legacy scratch parameter.

decodeNoWhitespaceSimd

public static int decodeNoWhitespaceSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset)
SIMD-optimized Base64 decoding for no-whitespace input. Uses generic SIMD byte primitives over a single caller-invisible scratch slab.

decodeNoWhitespaceSimd

public static int decodeNoWhitespaceSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset, int[] scratch)
Compatibility overload that ignores the legacy scratch parameter.

encodeNoNewlineSimd

public static int encodeNoNewlineSimd(byte[] in, byte[] out)
Convenience overload for encodeNoNewlineSimd(byte[], int, int, byte[], int) using zero offsets.

encodeNoNewlineSimd

public static int encodeNoNewlineSimd(byte[] in, byte[] out, int[] scratch)
Convenience overload for encodeNoNewlineSimd(byte[], int, int, byte[], int) that preserves the legacy scratch-bearing signature.

decodeNoWhitespaceSimd

public static int decodeNoWhitespaceSimd(byte[] in, int len, byte[] out)
Convenience overload for decodeNoWhitespaceSimd(byte[], int, int, byte[], int) using zero input offset.

decodeNoWhitespaceSimd

public static int decodeNoWhitespaceSimd(byte[] in, int len, byte[] out, int[] scratch)
Convenience overload for decodeNoWhitespaceSimd(byte[], int, int, byte[], int) that preserves the legacy scratch-bearing signature.