public class Base64 extends Object
Change Log:
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 -)Modifier and Type | Field and Description |
---|---|
static String |
ALPHABET_I2P
The I2P Alphabet.
|
Modifier and Type | Method and 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) |
public static final String ALPHABET_I2P
public static String encode(String source)
source
- if null will return ""public static String encode(byte[] source)
source
- if null will return ""public static String encode(byte[] source, int off, int len)
source
- if null will return ""public static String encode(byte[] source, boolean useStandardAlphabet)
source
- if null will return ""useStandardAlphabet
- Warning, must be false for I2P compatibilitypublic static String encode(byte[] source, int off, int len, boolean useStandardAlphabet)
source
- if null will return ""useStandardAlphabet
- Warning, must be false for I2P compatibilitypublic static byte[] decode(String s)
s
- Base 64 encoded string using the I2P alphabet A-Z, a-z, 0-9, -, ~public static byte[] decode(String s, boolean useStandardAlphabet)
useStandardAlphabet
- Warning, must be false for I2P compatibilitypublic static void main(String[] args)
public static String decodeToString(String s)
new 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.s
- the string to decode