Package net.i2p.data
Class Base64
- java.lang.Object
-
- net.i2p.data.Base64
-
public class Base64 extends Object
Encodes and decodes to and from Base64 notation.Change Log:
- v1.3.6 - Fixed OutputStream.flush() so that 'position' is reset.
- v1.3.5 - Added flag to turn on and off line breaks. Fixed bug in input stream where last buffer being read, if not completely full, was not returned.
- v1.3.4 - Fixed when "improperly padded stream" error was thrown at the wrong time.
- v1.3.3 - Fixed I/O streams which were totally messed up.
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/xmlizable periodically to check for updates or to contribute improvements.
Modified by jrandom for i2p, using safeEncode / safeDecode to create filesystem and URL safe base64 values (replacing / with ~, and + with -)- Version:
- 1.3.4
- Author:
- Robert Harder, rob@iharder.net
-
-
Field Summary
Fields Modifier and Type Field Description static String
ALPHABET_I2P
The I2P Alphabet.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]
decode(String s)
Decodes data from Base64 notation using the I2P alphabet.static byte[]
decode(String s, boolean useStandardAlphabet)
Decodes data from Base64 notation using the I2P alphabet.static String
decodeToString(String s)
Decodes data from Base64 notation and returns it as a string.static String
encode(byte[] source)
Output will be a multiple of 4 chars, including 0-2 trailing '='static String
encode(byte[] source, boolean useStandardAlphabet)
Output will be a multiple of 4 chars, including 0-2 trailing '='static String
encode(byte[] source, int off, int len)
Output will be a multiple of 4 chars, including 0-2 trailing '='static String
encode(byte[] source, int off, int len, boolean useStandardAlphabet)
Output will be a multiple of 4 chars, including 0-2 trailing '='static String
encode(String source)
Output will be a multiple of 4 chars, including 0-2 trailing '=' As of 0.9.14, encodes the UTF-8 encoding of source.static void
main(String[] args)
-
-
-
Field Detail
-
ALPHABET_I2P
public static final String ALPHABET_I2P
The I2P Alphabet.- Since:
- 0.9.29
- See Also:
- Constant Field Values
-
-
Method Detail
-
encode
public static String encode(String source)
Output will be a multiple of 4 chars, including 0-2 trailing '=' As of 0.9.14, encodes the UTF-8 encoding of source. Prior to that, used the platform's encoding.- Parameters:
source
- if null will return ""
-
encode
public static String encode(byte[] source)
Output will be a multiple of 4 chars, including 0-2 trailing '='- Parameters:
source
- if null will return ""
-
encode
public static String encode(byte[] source, int off, int len)
Output will be a multiple of 4 chars, including 0-2 trailing '='- Parameters:
source
- if null will return ""
-
encode
public static String encode(byte[] source, boolean useStandardAlphabet)
Output will be a multiple of 4 chars, including 0-2 trailing '='- Parameters:
source
- if null will return ""useStandardAlphabet
- Warning, must be false for I2P compatibility
-
encode
public static String encode(byte[] source, int off, int len, boolean useStandardAlphabet)
Output will be a multiple of 4 chars, including 0-2 trailing '='- Parameters:
source
- if null will return ""useStandardAlphabet
- Warning, must be false for I2P compatibility
-
decode
public static byte[] decode(String s)
Decodes data from Base64 notation using the I2P alphabet. As of 0.9.14, does not require trailing '=' if remaining bits are zero. Prior to that, trailing 1, 2, or 3 chars were ignored. As of 0.9.14, trailing garbage after an '=' will cause an error. Prior to that, it was ignored. As of 0.9.14, whitespace will cause an error. Prior to that, it was ignored.- Parameters:
s
- Base 64 encoded string using the I2P alphabet A-Z, a-z, 0-9, -, ~- Returns:
- the decoded data, null on error
-
decode
public static byte[] decode(String s, boolean useStandardAlphabet)
Decodes data from Base64 notation using the I2P alphabet.- Parameters:
useStandardAlphabet
- Warning, must be false for I2P compatibility- Returns:
- the decoded data, null on error
- Since:
- 0.9.25
-
main
public static void main(String[] args)
-
decodeToString
public static String decodeToString(String s)
Decodes data from Base64 notation and returns it as a string. Equivlaent to callingnew String( decode( s ) )
As of 0.9.14, decodes as UTF-8. Prior to that, it used the platform's encoding. For best results, decoded data should be 7 bit. As of 0.9.14, does not require trailing '=' if remaining bits are zero. Prior to that, trailing 1, 2, or 3 chars were ignored. As of 0.9.14, trailing garbage after an '=' will cause an error. Prior to that, it was ignored. As of 0.9.14, whitespace will cause an error. Prior to that, it was ignored.- Parameters:
s
- the string to decode- Returns:
- The data as a string, or null on error
- Since:
- 1.4
-
-