Class Base64
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]decode(byte[] in) static intdecode(byte[] in, byte[] out) static byte[]decode(byte[] in, int len) Decodes an array of bytes containing a Base64 ascii string into binary datastatic intdecode(byte[] in, int len, byte[] out) Decodes Base64 input into a caller-provided output buffer.static intdecodeNoWhitespaceSimd(byte[] in, int len, byte[] out) Convenience overload fordecodeNoWhitespaceSimd(byte[], int, int, byte[], int)using zero input offset.static intdecodeNoWhitespaceSimd(byte[] in, int len, byte[] out, int[] scratch) Convenience overload fordecodeNoWhitespaceSimd(byte[], int, int, byte[], int)that preserves the legacy scratch-bearing signature.static intdecodeNoWhitespaceSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset) SIMD-optimized Base64 decoding for no-whitespace input.static intdecodeNoWhitespaceSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset, int[] scratch) Compatibility overload that ignores the legacy scratch parameter.static byte[]Decodes a URL-safe Base64 string (RFC 4648 sec5).static Stringencode(byte[] in) Encodes the given array as a base64 stringstatic StringencodeNoNewline(byte[] in) Encodes the given array as a base64 string without breaking linesstatic intencodeNoNewline(byte[] in, byte[] out) Encodes input into a caller-provided output buffer without line breaks.static intencodeNoNewlineSimd(byte[] in, byte[] out) Convenience overload forencodeNoNewlineSimd(byte[], int, int, byte[], int)using zero offsets.static intencodeNoNewlineSimd(byte[] in, byte[] out, int[] scratch) Convenience overload forencodeNoNewlineSimd(byte[], int, int, byte[], int)that preserves the legacy scratch-bearing signature.static intencodeNoNewlineSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset) SIMD-optimized Base64 encoding with explicit offsets.static intencodeNoNewlineSimd(byte[] in, int inOffset, int inLength, byte[] out, int outOffset, int[] scratch) Compatibility overload that ignores the legacy scratch parameter.static StringencodeUrlSafe(byte[] in) URL-safe Base64 encoding per RFC 4648 sec5:+becomes-,/becomes_, and the trailing=padding is dropped.
-
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: the array -
len: 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: Base64 bytes -
len: bytes frominto decode -
out: destination buffer
Returns
decoded length, or
-1for invalid Base64 -
-
decode
public static int decode(byte[] in, byte[] out) -
encode
Encodes the given array as a base64 string
Parameters
in: the array to encode
Returns
the String containing the array
-
encodeNoNewline
Encodes the given array as a base64 string without breaking lines
Parameters
in: the array to encode
Returns
the String containing the array
-
encodeUrlSafe
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: the array to encode
Returns
the URL-safe Base64 string with no padding
-
decodeUrlSafe
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: 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: input bytes -
out: 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 forencodeNoNewlineSimd(byte[], int, int, byte[], int)using zero offsets. -
encodeNoNewlineSimd
public static int encodeNoNewlineSimd(byte[] in, byte[] out, int[] scratch) Convenience overload forencodeNoNewlineSimd(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 fordecodeNoWhitespaceSimd(byte[], int, int, byte[], int)using zero input offset. -
decodeNoWhitespaceSimd
public static int decodeNoWhitespaceSimd(byte[] in, int len, byte[] out, int[] scratch) Convenience overload fordecodeNoWhitespaceSimd(byte[], int, int, byte[], int)that preserves the legacy scratch-bearing signature.
-