org.apache.shiro.codec
Class Base64

java.lang.Object
  extended by 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 dependecny 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
Base64()
           
 
Method Summary
static byte[] decode(byte[] base64Data)
          Decodes Base64 data into octects
static 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 blocks
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).
static boolean isBase64(byte[] arrayOctect)
          Tests a given byte array to see if it contains only valid characters within the Base64 alphabet.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 - if true 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 than Integer.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 octects

Parameters:
base64Data - Byte array containing Base64 data
Returns:
Array containing decoded data.


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.