Class Base64
The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable. The encoding and decoding algorithms are simple, but the encoded data are consistently only about 33 percent larger than the un-encoded data. This encoding is virtually identical to the one used in Privacy Enhanced Mail (PEM) applications, as defined in RFC 1421.
A 65-character subset of US-ASCII is used, enabling 6 bits to be represented per printable character. (The extra 65th character, "=", is used to signify a special processing function.)
NOTE: This subset has the important property that it is represented identically in all versions of ISO 646, including US-ASCII, and all characters in the subset are also represented identically in all versions of EBCDIC. Other popular encodings, such as the encoding used by the uuencode utility, Macintosh binhex 4.0 [RFC-1741], and the base85 encoding specified as part of Level 2 PostScript, do no share these properties, and thus do not fulfill the portability requirements a binary transport encoding for mail must meet.
The encoding process represents 24-bit groups of input bits as output strings of 4 encoded characters. Proceeding from left to right, a 24-bit input group is formed by concatenating 3 8bit input groups. These 24 bits are then treated as 4 concatenated 6-bit groups, each of which is translated into a single digit in the base64 alphabet. When encoding a bit stream via the base64 encoding, the bit stream must be presumed to be ordered with the most-significant-bit first. That is, the first bit in the stream will be the high-order bit in the first 8bit byte, and the eighth bit will be the low-order bit in the first 8bit byte, and so on.
Each 6-bit group is used as an index into an array of 64 printable characters. The character referenced by the index is placed in the output string. These characters, identified in Table 1, below, are selected so as to be universally representable, and the set excludes characters with particular significance to SMTP (e.g., ".", CR, LF) and to the multi-part boundary delimiters defined in RFC 2046 (e.g., "-").
Table 1: The Base64 Alphabet Value Encoding Value Encoding Value Encoding Value Encoding 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 d 46 u 63 / 13 N 30 e 47 v 14 O 31 f 48 w (pad) = 15 P 32 g 49 x 16 Q 33 h 50 yThe encoded output stream must be represented in lines of no more than 76 characters each. All line breaks or other characters no found in Table 1 must be ignored by decoding software. In base64 data, characters other than those in Table 1, line breaks, and other white space probably indicate a transmission error, about which a warning message or even a message rejection might be appropriate under some circumstances.
Special processing is performed if fewer than 24 bits are available at the end of the data being encoded. A full encoding quantum is always completed at the end of a body. When fewer than 24 input bits are available in an input group, zero bits are added (on the right) to form an integral number of 6-bit groups. Padding at the end of the data is performed using the "=" character. Since all base64 input is an integral number of octets, only the following cases can arise: (1) the final quantum of encoding input is an integral multiple of 24 bits; here, the final unit of encoded output will be an integral multiple of 4 characters with no "=" padding, (2) the final quantum of encoding input is exactly 8 bits; here, the final unit of encoded output will be two characters followed by two "=" padding characters, or (3) the final quantum of encoding input is exactly 16 bits; here, the final unit of encoded output will be three characters followed by one "=" padding character.
Because it is used only for padding at the end of the data, the occurrence of any "=" characters may be taken as evidence that the end of the data has been reached (without truncation in transit). No such assurance is possible, however, when the number of octets transmitted was a multiple of three and no "=" characters are present.
Any characters outside of the base64 alphabet are to be ignored in base64-encoded data.
Care must be taken to use the proper octets for line breaks if base64 encoding is applied directly to text material that has not been converted to canonical form. In particular, text line breaks must be converted into CRLF sequences prior to base64 encoding. The important thing to note is that this may be done directly by the encoder rather than in a prior canonicalization step in some implementations.
NOTE: There is no need to worry about quoting potential boundary delimiters within base64-encoded bodies within multi-part entities because no hyphen characters are used in the base64 encoding.
- Since:
- ostermillerutils 1.00.00
- Author:
- Stephen Ostermiller https://ostermiller.org/contact.pl?regarding=Java+Utilities
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic byte[]decode(byte[] bytes) Deprecated.use decodeToBytes(bytes)static voiddecode(byte[] bytes, OutputStream out) Decode Base64 encoded bytes to the an OutputStream.static voidDecode Base64 encoded data from one file to the other.static voidDecode Base64 encoded data from one file to the other.static voidDecode Base64 encoded data from one file to the other.static voidDecode Base64 encoded data from one file to the other.static voiddecode(InputStream in, OutputStream out) Decode Base64 encoded data from the InputStream to the OutputStream.static voiddecode(InputStream in, OutputStream out, boolean throwExceptions) Decode Base64 encoded data from the InputStream to the OutputStream.static voiddecode(Reader in, OutputStream out) Decode Base64 encoded data from the InputStream to the OutputStream.static voiddecode(Reader in, OutputStream out, boolean throwExceptions) Decode Base64 encoded data from the InputStream to the OutputStream.static Stringdecode(CharSequence string) Deprecated.use decodeToStringstatic voiddecode(CharSequence in, OutputStream out) Decode Base64 encoded data from the InputStream to the OutputStream.static Stringdecode(CharSequence string, String enc) Deprecated.use decodeToStringstatic Stringdecode(CharSequence string, String encIn, String encOut) Deprecated.The input encoding is no longer usedstatic byte[]decodeToBytes(byte[] bytes) Decode Base64 encoded bytes.static byte[]decodeToBytes(char[] chars) Decode Base64 encoded bytes.static byte[]Decode Base64 encoded data from the InputStream to a byte array.static byte[]decodeToBytes(Reader in) Decode Base64 encoded bytes.static byte[]decodeToBytes(CharSequence string) Decode a Base64 encoded String.static byte[]decodeToBytes(CharSequence string, String enc) Deprecated.the encoding is ignored.static voiddecodeToStream(byte[] bytes, OutputStream out) Deprecated.Use decode(byte[], OutputStream)static voiddecodeToStream(CharSequence string, OutputStream out) Deprecated.Use decode(InputStream in, OutputStream out))static voiddecodeToStream(CharSequence string, String enc, OutputStream out) Deprecated.enc is ignored.static StringdecodeToString(byte[] bytes) Decode Base64 encoded bytes.static StringdecodeToString(byte[] bytes, String enc) Decode Base64 encoded bytes.static StringdecodeToString(char[] chars) Decode Base64 encoded data from the InputStream to a String.static StringdecodeToString(char[] chars, String enc) Decode Base64 encoded data from the InputStream to a String.static StringDecode Base64 encoded data from the InputStream to a String.static StringdecodeToString(InputStream in, String enc) Decode Base64 encoded data from the InputStream to a String.static StringdecodeToString(Reader in) Decode Base64 encoded data from the InputStream to a String.static StringdecodeToString(Reader in, String enc) Decode Base64 encoded data from the InputStream to a String.static StringdecodeToString(CharSequence string) Decode a Base64 encoded String.static StringdecodeToString(CharSequence string, String enc) Decode a Base64 encoded String.static StringdecodeToString(CharSequence string, String encIn, String encOut) Deprecated.input encoding is no longer used.static byte[]encode(byte[] bytes) Encode bytes in Base64.static byte[]encode(byte[] bytes, boolean lineBreaks) Encode bytes in Base64.static voidEncode this file in Base64.static voidEncode this file in Base64.static voidEncode this file in Base64.static voidEncode this file in Base64.static voidencode(InputStream in, OutputStream out) Encode data from the InputStream to the OutputStream in Base64.static voidencode(InputStream in, OutputStream out, boolean lineBreaks) Encode data from the InputStream to the OutputStream in Base64.static StringEncode a String in Base64.static StringEncode a String in Base64.static StringencodeToString(byte[] bytes) Encode bytes in Base64.static StringencodeToString(byte[] bytes, boolean lineBreaks) Encode bytes in Base64.static booleanisBase64(byte[] bytes) Determines if the byte array is in base64 format.static booleanisBase64(char[] chars) Determines if the String is in base64 format.static booleanDetermines if the File is in base64 format.static booleanisBase64(InputStream in) Reads data from the stream and determines if it is in base64 format.static booleanReads data from the stream and determines if it is in base64 format.static booleanisBase64(CharSequence string) Determines if the String is in base64 format.static booleanisBase64(CharSequence string, String enc) Deprecated.enc parameter is never used use isBase64(CharSequence)static voidConverts the line ending on files, or standard input.
-
Field Details
-
version
Version number of this program- Since:
- ostermillerutils 1.00.00
- See Also:
-
-
Method Details
-
main
Converts the line ending on files, or standard input. Run with --help argument for more information.- Parameters:
args- Command line arguments.- Since:
- ostermillerutils 1.00.00
-
encode
Encode a String in Base64. The String is converted from bytes according to the platform's default character encoding. No line breaks or other white space are inserted into the encoded data.- Parameters:
string- The data to encode.- Returns:
- An encoded String.
- Since:
- ostermillerutils 1.00.00
-
encode
Encode a String in Base64. No line breaks or other white space are inserted into the encoded data.- Parameters:
string- The data to encode.enc- Character encoding to use when converting from bytes.- Returns:
- An encoded String.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.00.00
-
encodeToString
Encode bytes in Base64. No line breaks or other white space are inserted into the encoded data.- Parameters:
bytes- The data to encode.- Returns:
- String with Base64 encoded data.
- Since:
- ostermillerutils 1.04.00
-
encodeToString
Encode bytes in Base64.- Parameters:
bytes- The data to encode.lineBreaks- Whether to insert line breaks every 76 characters in the output.- Returns:
- String with Base64 encoded data.
- Since:
- ostermillerutils 1.04.00
-
encode
public static byte[] encode(byte[] bytes) Encode bytes in Base64. No line breaks or other white space are inserted into the encoded data.- Parameters:
bytes- The data to encode.- Returns:
- Encoded bytes.
- Since:
- ostermillerutils 1.00.00
-
encode
public static byte[] encode(byte[] bytes, boolean lineBreaks) Encode bytes in Base64.- Parameters:
bytes- The data to encode.lineBreaks- Whether to insert line breaks every 76 characters in the output.- Returns:
- Encoded bytes.
- Since:
- ostermillerutils 1.04.00
-
encode
Encode this file in Base64. Line breaks will be inserted every 76 characters.- Parameters:
fIn- File to be encoded (will be overwritten).- Throws:
IOException- if an input or output error occurs.- Since:
- ostermillerutils 1.00.00
-
encode
Encode this file in Base64.- Parameters:
fIn- File to be encoded (will be overwritten).lineBreaks- Whether to insert line breaks every 76 characters in the output.- Throws:
IOException- if an input or output error occurs.- Since:
- ostermillerutils 1.00.00
-
encode
Encode this file in Base64. Line breaks will be inserted every 76 characters.- Parameters:
fIn- File to be encoded.fOut- File to which the results should be written (may be the same as fIn).- Throws:
IOException- if an input or output error occurs.- Since:
- ostermillerutils 1.00.00
-
encode
Encode this file in Base64.- Parameters:
fIn- File to be encoded.fOut- File to which the results should be written (may be the same as fIn).lineBreaks- Whether to insert line breaks every 76 characters in the output.- Throws:
IOException- if an input or output error occurs.- Since:
- ostermillerutils 1.00.00
-
encode
Encode data from the InputStream to the OutputStream in Base64. Line breaks are inserted every 76 characters in the output.- Parameters:
in- Stream from which to read data that needs to be encoded.out- Stream to which to write encoded data.- Throws:
IOException- if there is a problem reading or writing.- Since:
- ostermillerutils 1.00.00
-
encode
Encode data from the InputStream to the OutputStream in Base64.- Parameters:
in- Stream from which to read data that needs to be encoded.out- Stream to which to write encoded data.lineBreaks- Whether to insert line breaks every 76 characters in the output.- Throws:
IOException- if there is a problem reading or writing.- Since:
- ostermillerutils 1.00.00
-
decodeToBytes
Decode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input. The String is converted from bytes according to the platform's default character encoding.- Parameters:
string- The data to decode.- Returns:
- decoded data.
- Since:
- ostermillerutils 1.02.16
-
decodeToBytes
public static byte[] decodeToBytes(CharSequence string, String enc) throws UnsupportedEncodingException Deprecated.the encoding is ignored. Use decodeToBytes(CharSequence)- Parameters:
string- The data to decode.enc- Character encoding to use when converting from bytes.- Returns:
- decoded data.
- Throws:
UnsupportedEncodingException- Since:
- ostermillerutils 1.02.16
-
decodeToBytes
public static byte[] decodeToBytes(byte[] bytes) Decode Base64 encoded bytes. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
bytes- The data to decode.- Returns:
- Decoded bytes.
- Since:
- ostermillerutils 1.02.16
-
decode
public static byte[] decode(byte[] bytes) Deprecated.use decodeToBytes(bytes)Decode Base64 encoded bytes. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
bytes- The data to decode.- Returns:
- Decoded bytes.
- Since:
- ostermillerutils 1.00.00
-
decodeToBytes
public static byte[] decodeToBytes(char[] chars) Decode Base64 encoded bytes. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
chars- The data to decode.- Returns:
- Decoded bytes.
- Since:
- ostermillerutils 1.08.03
-
decodeToBytes
Decode Base64 encoded bytes. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
in- The data to decode.- Returns:
- Decoded bytes.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.08.03
-
decodeToBytes
Decode Base64 encoded data from the InputStream to a byte array. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
in- Stream from which to read data that needs to be decoded.- Returns:
- decoded data.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.00.00
-
decodeToString
Decode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input. The String is converted from bytes according to the platform's default character encoding.- Parameters:
string- The data to decode.- Returns:
- A decoded String.
- Since:
- ostermillerutils 1.02.16
-
decode
Deprecated.use decodeToStringDecode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input. The String is converted from bytes according to the platform's default character encoding.- Parameters:
string- The data to decode.- Returns:
- A decoded String.
- Since:
- ostermillerutils 1.00.00
-
decodeToString
public static String decodeToString(CharSequence string, String enc) throws UnsupportedEncodingException Decode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
string- The data to decode.enc- Character encoding to use when converting from bytes.- Returns:
- A decoded String.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.02.16
-
decode
Deprecated.use decodeToStringDecode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
string- The data to decode.enc- Character encoding to use when converting from bytes.- Returns:
- A decoded String.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.00.00
-
decodeToString
public static String decodeToString(CharSequence string, String encIn, String encOut) throws UnsupportedEncodingException Deprecated.input encoding is no longer used. Use decodeToString(CharSequence, String) instead.Decode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
string- The data to decode.encIn- Character encoding to use when converting input to bytes (should not matter because Base64 data is designed to survive most character encodings)encOut- Character encoding to use when converting decoded bytes to output.- Returns:
- A decoded String.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.02.16
-
decode
public static String decode(CharSequence string, String encIn, String encOut) throws UnsupportedEncodingException Deprecated.The input encoding is no longer usedDecode a Base64 encoded String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
string- The data to decode.encIn- Character encoding to use when converting input to bytes (should not matter because Base64 data is designed to survive most character encodings)encOut- Character encoding to use when converting decoded bytes to output.- Returns:
- A decoded String.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.00.00
-
decodeToString
Decode Base64 encoded data from the InputStream to a String. Characters that are not part of the Base64 alphabet are ignored in the input. Bytes are converted to characters in the output String according to the platform's default character encoding.- Parameters:
in- Stream from which to read data that needs to be decoded.- Returns:
- decoded data.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.02.16
-
decodeToString
Decode Base64 encoded data from the InputStream to a String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
in- Stream from which to read data that needs to be decoded.enc- Character encoding to use when converting bytes to characters.- Returns:
- decoded data.
- Throws:
IOException- if an IO error occurs.UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.02.16
-
decodeToString
Decode Base64 encoded data from the InputStream to a String. Characters that are not part of the Base64 alphabet are ignored in the input. Bytes are converted to characters in the output String according to the platform's default character encoding.- Parameters:
in- Stream from which to read data that needs to be decoded.- Returns:
- decoded data.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.08.03
-
decodeToString
Decode Base64 encoded data from the InputStream to a String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
in- Stream from which to read data that needs to be decoded.enc- Character encoding to use when converting bytes to characters.- Returns:
- decoded data.
- Throws:
IOException- if an IO error occurs.UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.08.03
-
decodeToString
Decode Base64 encoded data from the InputStream to a String. Characters that are not part of the Base64 alphabet are ignored in the input. Bytes are converted to characters in the output String according to the platform's default character encoding.- Parameters:
chars- Data which to read data that needs to be decoded.- Returns:
- decoded data.
- Since:
- ostermillerutils 1.08.03
-
decodeToString
Decode Base64 encoded data from the InputStream to a String. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
chars- Data which to read data that needs to be decoded.enc- Character encoding to use when converting bytes to characters.- Returns:
- decoded data.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.08.03
-
decodeToString
Decode Base64 encoded bytes. Characters that are not part of the Base64 alphabet are ignored in the input. The String is converted to bytes according to the platform's default character encoding.- Parameters:
bytes- The data to decode.- Returns:
- A decoded String.
- Since:
- ostermillerutils 1.02.16
-
decodeToString
Decode Base64 encoded bytes. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
bytes- The data to decode.enc- Character encoding to use when converting from bytes.- Returns:
- A decoded String.
- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.- Since:
- ostermillerutils 1.02.16
-
decode
Decode Base64 encoded data from the InputStream to the OutputStream. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
in- Stream from which to read data that needs to be decoded.out- Stream to which to write decoded data.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered.- Since:
- ostermillerutils 1.00.00
-
decodeToStream
Deprecated.Use decode(InputStream in, OutputStream out))Decode a Base64 encoded String to an OutputStream. Characters that are not part of the Base64 alphabet are ignored in the input. The String is converted from bytes according to the platform's default character encoding.- Parameters:
string- The data to decode.out- Stream to which to write decoded data.- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.02.16
-
decode
public static void decode(InputStream in, OutputStream out, boolean throwExceptions) throws IOException Decode Base64 encoded data from the InputStream to the OutputStream. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
in- Stream from which to read data that needs to be decoded.out- Stream to which to write decoded data.throwExceptions- Whether to throw exceptions when unexpected data is encountered.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered when throwExceptions is specified.- Since:
- ostermillerutils 1.00.00
-
decode
Decode Base64 encoded bytes to the an OutputStream. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
bytes- The data to decode.out- Stream to which to write decoded data.- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.00.00
-
decodeToStream
Deprecated.Use decode(byte[], OutputStream)Decode Base64 encoded bytes to the an OutputStream. Characters that are not part of the Base64 alphabet are ignored in the input.- Parameters:
bytes- The data to decode.out- Stream to which to write decoded data.- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.02.16
-
decode
Decode Base64 encoded data from the InputStream to the OutputStream. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
in- Stream from which to read data that needs to be decoded.out- Stream to which to write decoded data.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered.- Since:
- ostermillerutils 1.08.03
-
decode
Decode Base64 encoded data from the InputStream to the OutputStream. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
in- Stream from which to read data that needs to be decoded.out- Stream to which to write decoded data.throwExceptions- Whether to throw exceptions when unexpected data is encountered.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered when throwExceptions is specified.- Since:
- ostermillerutils 1.08.03
-
decode
Decode Base64 encoded data from the InputStream to the OutputStream. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
in- String or other character sequence that needs to be decodedout- Stream to which to write decoded data.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered when throwExceptions is specified.- Since:
- ostermillerutils 1.08.03
-
decodeToStream
public static void decodeToStream(CharSequence string, String enc, OutputStream out) throws UnsupportedEncodingException, IOException Deprecated.enc is ignored. Use decode(CharSequence, OutputStream)- Parameters:
string- The data to decode.enc- Character encoding to use when converting from bytes.out- Stream to which to write decoded data.- Throws:
UnsupportedEncodingException- if the character encoding specified is not supported.IOException- if an IO error occurs.- Since:
- ostermillerutils 1.02.16
-
decode
Decode Base64 encoded data from one file to the other. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
fIn- File to be decoded (will be overwritten).- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered.- Since:
- ostermillerutils 1.00.00
-
decode
Decode Base64 encoded data from one file to the other. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
fIn- File to be decoded (will be overwritten).throwExceptions- Whether to throw exceptions when unexpected data is encountered.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered when throwExceptions is specified.- Since:
- ostermillerutils 1.00.00
-
decode
Decode Base64 encoded data from one file to the other. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
fIn- File to be decoded.fOut- File to which the results should be written (may be the same as fIn).- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered.- Since:
- ostermillerutils 1.00.00
-
decode
Decode Base64 encoded data from one file to the other. Characters in the Base64 alphabet, white space and equals sign are expected to be in url encoded data. The presence of other characters could be a sign that the data is corrupted.- Parameters:
fIn- File to be decoded.fOut- File to which the results should be written (may be the same as fIn).throwExceptions- Whether to throw exceptions when unexpected data is encountered.- Throws:
IOException- if an IO error occurs.Base64DecodingException- if unexpected data is encountered when throwExceptions is specified.- Since:
- ostermillerutils 1.00.00
-
isBase64
public static boolean isBase64(byte[] bytes) Determines if the byte array is in base64 format.Data will be considered to be in base64 format if it contains only base64 characters and white space with equals sign padding on the end so that the number of base64 characters is divisible by four.
It is possible for data to be in base64 format but for it to not meet these stringent requirements. It is also possible for data to meet these requirements even though decoding it would not make any sense. This method should be used as a guide but it is not authoritative because of the possibility of these false positives and false negatives.
Additionally, extra data such as headers or footers may throw this method off the scent and cause it to return false.
- Parameters:
bytes- data that could be in base64 format.- Returns:
- Best guess as to whether the data is in base64 format.
- Since:
- ostermillerutils 1.00.00
-
isBase64
Determines if the String is in base64 format. The String is converted from bytes according to the platform's default character encoding.Data will be considered to be in base64 format if it contains only base64 characters and white space with equals sign padding on the end so that the number of base64 characters is divisible by four.
It is possible for data to be in base64 format but for it to not meet these stringent requirements. It is also possible for data to meet these requirements even though decoding it would not make any sense. This method should be used as a guide but it is not authoritative because of the possibility of these false positives and false negatives.
Additionally, extra data such as headers or footers may throw this method off the scent and cause it to return false.
- Parameters:
string- data that could be in base64 format.- Returns:
- Best guess as to whether the data is in base64 format.
- Since:
- ostermillerutils 1.00.00
-
isBase64
Deprecated.enc parameter is never used use isBase64(CharSequence)- Parameters:
string- data that could be in base64 format.enc- Character encoding (never used)- Throws:
UnsupportedEncodingException
-
isBase64
public static boolean isBase64(char[] chars) Determines if the String is in base64 format. The String is converted from bytes according to the platform's default character encoding.Data will be considered to be in base64 format if it contains only base64 characters and white space with equals sign padding on the end so that the number of base64 characters is divisible by four.
It is possible for data to be in base64 format but for it to not meet these stringent requirements. It is also possible for data to meet these requirements even though decoding it would not make any sense. This method should be used as a guide but it is not authoritative because of the possibility of these false positives and false negatives.
Additionally, extra data such as headers or footers may throw this method off the scent and cause it to return false.
- Parameters:
chars- character array that may be in base64 format.- Returns:
- Best guess as to whether the data is in base64 format.
- Since:
- ostermillerutils 1.08.03
-
isBase64
Determines if the File is in base64 format.Data will be considered to be in base64 format if it contains only base64 characters and white space with equals sign padding on the end so that the number of base64 characters is divisible by four.
It is possible for data to be in base64 format but for it to not meet these stringent requirements. It is also possible for data to meet these requirements even though decoding it would not make any sense. This method should be used as a guide but it is not authoritative because of the possibility of these false positives and false negatives.
Additionally, extra data such as headers or footers may throw this method off the scent and cause it to return false.
- Parameters:
fIn- File that may be in base64 format.- Returns:
- Best guess as to whether the data is in base64 format.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.00.00
-
isBase64
Reads data from the stream and determines if it is in base64 format.Data will be considered to be in base64 format if it contains only base64 characters and white space with equals sign padding on the end so that the number of base64 characters is divisible by four.
It is possible for data to be in base64 format but for it to not meet these stringent requirements. It is also possible for data to meet these requirements even though decoding it would not make any sense. This method should be used as a guide but it is not authoritative because of the possibility of these false positives and false negatives.
Additionally, extra data such as headers or footers may throw this method off the scent and cause it to return false.
- Parameters:
in- Stream from which to read data to be tested.- Returns:
- Best guess as to whether the data is in base64 format.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.00.00
-
isBase64
Reads data from the stream and determines if it is in base64 format.Data will be considered to be in base64 format if it contains only base64 characters and white space with equals sign padding on the end so that the number of base64 characters is divisible by four.
It is possible for data to be in base64 format but for it to not meet these stringent requirements. It is also possible for data to meet these requirements even though decoding it would not make any sense. This method should be used as a guide but it is not authoritative because of the possibility of these false positives and false negatives.
Additionally, extra data such as headers or footers may throw this method off the scent and cause it to return false.
- Parameters:
in- Stream from which to read data to be tested.- Returns:
- Best guess as to whether the data is in base64 format.
- Throws:
IOException- if an IO error occurs.- Since:
- ostermillerutils 1.08.03
-