Package org.apache.shiro.codec
Class Base64
- java.lang.Object
-
- org.apache.shiro.codec.Base64
-
public class Base64 extends Object
Provides Base 64 encoding and decoding as defined by RFC 2045. This class implements section 6.8. Base64 Content-Transfer-Encoding from RFC 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies by Freed and Borenstein. This class was borrowed from Apache Commons Codec SVN repository (rev. 618419) with modifications to enable Base64 conversion without a full dependency on Commons Codec. We didn't want to reinvent the wheel of great work they've done, but also didn't want to force every Shiro user to depend on the commons-codec.jar As per the Apache 2.0 license, the original copyright notice and all author and copyright information have remained in tact.- Since:
- 0.9
- See Also:
- Wikipedia: Base 64, RFC 2045
-
-
Constructor Summary
Constructors Constructor Description Base64()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]
decode(byte[] base64Data)
Decodes Base64 data into octetsstatic byte[]
decode(String base64Encoded)
Converts the specified UTF-8 Base64 encoded String and decodes it to a raw Base64 decoded byte array.static String
decodeToString(byte[] base64Encoded)
Decodes the specified Base64 encoded byte array and returns the decoded result as a UTF-8 encoded.static String
decodeToString(String base64Encoded)
Converts the specified UTF-8 Base64 encoded String and decodes it to a resultant UTF-8 encoded string.static byte[]
encode(byte[] pArray)
Encodes a byte[] containing binary data, into a byte[] containing characters in the Base64 alphabet.static byte[]
encode(byte[] binaryData, boolean isChunked)
Encodes binary data using the base64 algorithm, optionally chunking the output into 76 character blocks.static byte[]
encodeChunked(byte[] binaryData)
Encodes binary data using the base64 algorithm and chunks the encoded output into 76 character blocksstatic String
encodeToString(byte[] bytes)
Base64 encodes the specified byte array and then encodes it as a String using Shiro's preferred character encoding (UTF-8).static boolean
isBase64(byte[] arrayOctect)
Tests a given byte array to see if it contains only valid characters within the Base64 alphabet.
-
-
-
Constructor Detail
-
Base64
public Base64()
-
-
Method Detail
-
isBase64
public static boolean isBase64(byte[] arrayOctect)
Tests a given byte array to see if it contains only valid characters within the Base64 alphabet.- Parameters:
arrayOctect
- byte array to test- Returns:
true
if all bytes are valid characters in the Base64 alphabet or if the byte array is empty; false, otherwise
-
encodeToString
public static String encodeToString(byte[] bytes)
Base64 encodes the specified byte array and then encodes it as a String using Shiro's preferred character encoding (UTF-8).- Parameters:
bytes
- the byte array to Base64 encode.- Returns:
- a UTF-8 encoded String of the resulting Base64 encoded byte array.
-
encodeChunked
public static byte[] encodeChunked(byte[] binaryData)
Encodes binary data using the base64 algorithm and chunks the encoded output into 76 character blocks- Parameters:
binaryData
- binary data to encodeToChars- Returns:
- Base64 characters chunked in 76 character blocks
-
encode
public static byte[] encode(byte[] pArray)
Encodes a byte[] containing binary data, into a byte[] containing characters in the Base64 alphabet.- Parameters:
pArray
- a byte array containing binary data- Returns:
- A byte array containing only Base64 character data
-
encode
public static byte[] encode(byte[] binaryData, boolean isChunked)
Encodes binary data using the base64 algorithm, optionally chunking the output into 76 character blocks.- Parameters:
binaryData
- Array containing binary data to encodeToChars.isChunked
- iftrue
this encoder will chunk the base64 output into 76 character blocks- Returns:
- Base64-encoded data.
- Throws:
IllegalArgumentException
- Thrown when the input array needs an output array bigger thanInteger.MAX_VALUE
-
decodeToString
public static String decodeToString(String base64Encoded)
Converts the specified UTF-8 Base64 encoded String and decodes it to a resultant UTF-8 encoded string.- Parameters:
base64Encoded
- a UTF-8 Base64 encoded String- Returns:
- the decoded String, UTF-8 encoded.
-
decodeToString
public static String decodeToString(byte[] base64Encoded)
Decodes the specified Base64 encoded byte array and returns the decoded result as a UTF-8 encoded.- Parameters:
base64Encoded
- a Base64 encoded byte array- Returns:
- the decoded String, UTF-8 encoded.
-
decode
public static byte[] decode(String base64Encoded)
Converts the specified UTF-8 Base64 encoded String and decodes it to a raw Base64 decoded byte array.- Parameters:
base64Encoded
- a UTF-8 Base64 encoded String- Returns:
- the raw Base64 decoded byte array.
-
decode
public static byte[] decode(byte[] base64Data)
Decodes Base64 data into octets- Parameters:
base64Data
- Byte array containing Base64 data- Returns:
- Array containing decoded data.
-
-