public abstract class Base64
- Object
- Base64
This class implements Base64 encoding/decoding functionality
as specified in RFC 2045 (http://www.ietf.org/rfc/rfc2045.txt).
Constructors
public Base64() |
Methods
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
inbyte[]- the array
lenint- 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
inbyte[]- Base64 bytes
lenint- bytes from
into decode outbyte[]- destination buffer
Returns
decoded length, or
-1 for invalid Base64decode
public static int decode(byte[] in, byte[] out)encode
public static String encode(byte[] in)Encodes the given array as a base64 string
Parameters
inbyte[]- 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
inbyte[]- 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
inbyte[]- 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
sString- 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
inbyte[]- input bytes
outbyte[]- destination buffer
Returns
number of bytes written to
outencodeNoNewlineSimd
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.