@InterfaceAudience.Private @InterfaceStability.Stable public class Base64 extends Object
Homepage: http://iharder.net/base64.
Change Log:
Special thanks to Jim Kellerman at http://www.powerset.com/ for contributing the new Base64 dialects.
I am placing this code in the Public Domain. Do with it as you will. This software comes with no guarantees or warranties but with plenty of well-wishing instead!
Please visit http://iharder.net/base64 periodically to check for updates or to contribute improvements.
author: Robert Harder, rob@iharder.net
version: 2.2.1
Modifier and Type | Class and Description |
---|---|
static class |
Base64.Base64InputStream
A
Base64.Base64InputStream will read data from another
InputStream, given in the constructor, and
encode/decode to/from Base64 notation on the fly. |
static class |
Base64.Base64OutputStream
A
Base64.Base64OutputStream will write data to another
OutputStream, given in the constructor, and
encode/decode to/from Base64 notation on the fly. |
Modifier and Type | Field and Description |
---|---|
private static byte[] |
_ORDERED_ALPHABET
In addition to being URL and file name friendly, this encoding preserves
the sort order of encoded values.
|
private static byte[] |
_ORDERED_DECODABET
Used in decoding the "ordered" dialect of Base64.
|
private static byte[] |
_STANDARD_ALPHABET
The 64 valid Base64 values.
|
private static byte[] |
_STANDARD_DECODABET
Translates a Base64 value to either its 6-bit reconstruction value or a
negative number indicating some other meaning.
|
private static byte[] |
_URL_SAFE_ALPHABET
Used in the URL and Filename safe dialect described in Section 4 of RFC3548
http://www.faqs.org/rfcs/rfc3548.html.
|
private static byte[] |
_URL_SAFE_DECODABET
Used in decoding URL and Filename safe dialects of Base64.
|
static int |
DECODE
Specify decoding.
|
static int |
DONT_BREAK_LINES
Don't break lines when encoding (violates strict Base64 specification)
|
static int |
ENCODE
Specify encoding.
|
private static byte |
EQUALS_SIGN
The equals sign (=) as a byte.
|
private static byte |
EQUALS_SIGN_ENC |
static int |
GZIP
Specify that data should be gzip-compressed.
|
private static org.apache.commons.logging.Log |
LOG |
private static int |
MAX_LINE_LENGTH
Maximum line length (76) of Base64 output.
|
private static byte |
NEW_LINE
The new line character (\n) as a byte.
|
static int |
NO_OPTIONS
No options specified.
|
static int |
ORDERED
Encode using the special "ordered" dialect of Base64 described here:
http://www.faqs.org/qa/rfcc-1940.html.
|
private static String |
PREFERRED_ENCODING
Preferred encoding.
|
static int |
URL_SAFE
Encode using Base64-like encoding that is URL and Filename safe as
described in Section 4 of RFC3548:
http://www.faqs.org/rfcs/rfc3548.html.
|
private static byte |
WHITE_SPACE_ENC |
Modifier | Constructor and Description |
---|---|
private |
Base64()
Defeats instantiation.
|
Modifier and Type | Method and Description |
---|---|
static byte[] |
decode(byte[] source,
int off,
int len,
int options)
Very low-level access to decoding ASCII characters in the form of a byte
array.
|
static byte[] |
decode(String s)
Decodes data from Base64 notation, automatically detecting gzip-compressed
data and decompressing it.
|
static byte[] |
decode(String s,
int options)
Decodes data from Base64 notation, automatically detecting gzip-compressed
data and decompressing it.
|
protected static int |
decode4to3(byte[] source,
int srcOffset,
byte[] destination,
int destOffset,
int options)
Decodes four bytes from array source and writes the resulting
bytes (up to three of them) to destination.
|
static byte[] |
decodeFromFile(String filename)
Convenience method for reading a base64-encoded file and decoding it.
|
protected static byte[] |
encode3to4(byte[] b4,
byte[] threeBytes,
int numSigBytes,
int options)
Encodes up to the first three bytes of array threeBytes and
returns a four-byte array in Base64 notation.
|
protected static byte[] |
encode3to4(byte[] source,
int srcOffset,
int numSigBytes,
byte[] destination,
int destOffset,
int options)
Encodes up to three bytes of the array source and writes the
resulting four Base64 bytes to destination.
|
static String |
encodeBytes(byte[] source)
Encodes a byte array into Base64 notation.
|
static String |
encodeBytes(byte[] source,
int options)
Encodes a byte array into Base64 notation.
|
static String |
encodeBytes(byte[] source,
int off,
int len,
int options)
Encodes a byte array into Base64 notation.
|
static String |
encodeFromFile(String filename)
Convenience method for reading a binary file and base64-encoding it.
|
protected static byte[] |
getAlphabet(int options)
Returns one of the _SOMETHING_ALPHABET byte arrays depending on the options
specified.
|
protected static byte[] |
getDecodabet(int options)
Returns one of the _SOMETHING_DECODABET byte arrays depending on the
options specified.
|
public static final int NO_OPTIONS
public static final int ENCODE
public static final int DECODE
public static final int GZIP
public static final int DONT_BREAK_LINES
public static final int URL_SAFE
public static final int ORDERED
private static final org.apache.commons.logging.Log LOG
private static final int MAX_LINE_LENGTH
private static final byte EQUALS_SIGN
private static final byte NEW_LINE
private static final String PREFERRED_ENCODING
private static final byte WHITE_SPACE_ENC
private static final byte EQUALS_SIGN_ENC
private static final byte[] _STANDARD_ALPHABET
private static final byte[] _STANDARD_DECODABET
private static final byte[] _URL_SAFE_ALPHABET
private static final byte[] _URL_SAFE_DECODABET
private static final byte[] _ORDERED_ALPHABET
private static final byte[] _ORDERED_DECODABET
protected static byte[] getAlphabet(int options)
options
- URL_SAFE or ORDEREDprotected static byte[] getDecodabet(int options)
options
- URL_SAFE or ORDEREDprotected static byte[] encode3to4(byte[] b4, byte[] threeBytes, int numSigBytes, int options)
b4
- A reusable byte array to reduce array instantiationthreeBytes
- the array to convertnumSigBytes
- the number of significant bytes in your arrayoptions
- options for get alphabetprotected static byte[] encode3to4(byte[] source, int srcOffset, int numSigBytes, byte[] destination, int destOffset, int options)
This is the lowest level of the encoding methods with all possible parameters.
source
- the array to convertsrcOffset
- the index where conversion beginsnumSigBytes
- the number of significant bytes in your arraydestination
- the array to hold the conversiondestOffset
- the index where output will be putoptions
- options for get alphabetpublic static String encodeBytes(byte[] source)
source
- The data to convertpublic static String encodeBytes(byte[] source, int options)
Valid options:
Example: encodeBytes( myData, Base64.GZIP )
or
Example:
encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES )
source
- The data to convertoptions
- Specified optionsGZIP
,
DONT_BREAK_LINES
,
URL_SAFE
,
ORDERED
public static String encodeBytes(byte[] source, int off, int len, int options)
Valid options:
Example: encodeBytes( myData, Base64.GZIP )
or
Example:
encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES )
source
- The data to convertoff
- Offset in array where conversion should beginlen
- Length of data to convertoptions
- Specified optionsGZIP
,
DONT_BREAK_LINES
,
URL_SAFE
,
ORDERED
protected static int decode4to3(byte[] source, int srcOffset, byte[] destination, int destOffset, int options)
This is the lowest level of the decoding methods with all possible parameters.
public static byte[] decode(byte[] source, int off, int len, int options)
public static byte[] decode(String s)
s
- the string to decodepublic static byte[] decode(String s, int options)
public static byte[] decodeFromFile(String filename)
filename
- Filename for reading encoded dataCopyright © 2007–2019 The Apache Software Foundation. All rights reserved.