public class Base58 extends Object
Note that this is not the same base58 as used by Flickr, which you may find referenced around the Internet.
You may want to consider working with VersionedChecksummedBytes
instead, which
adds support for testing the prefix and suffix bytes commonly found in addresses.
Satoshi explains: why base-58 instead of standard base-64 encoding?
However, note that the encoding/decoding runs in O(n²) time, so it is not useful for large data.
The basic idea of the encoding is to treat the data bytes as a large number represented using base-256 digits, convert the number to be represented using base-58 digits, preserve the exact number of leading zeros (which are otherwise lost during the mathematical operations on the numbers), and finally represent the resulting base-58 digits as alphanumeric ASCII characters.
Modifier and Type | Field and Description |
---|---|
static char[] |
ALPHABET |
Constructor and Description |
---|
Base58() |
Modifier and Type | Method and Description |
---|---|
static byte[] |
decode(String input)
Decodes the given base58 string into the original data bytes.
|
static byte[] |
decodeChecked(String input)
Decodes the given base58 string into the original data bytes, using the checksum in the
last 4 bytes of the decoded data to verify that the rest are correct.
|
static BigInteger |
decodeToBigInteger(String input) |
static String |
encode(byte[] input)
Encodes the given bytes as a base58 string (no checksum is appended).
|
public static String encode(byte[] input)
input
- the bytes to encodepublic static byte[] decode(String input) throws AddressFormatException
input
- the base58-encoded string to decodeAddressFormatException
- if the given string is not a valid base58 stringpublic static BigInteger decodeToBigInteger(String input) throws AddressFormatException
AddressFormatException
public static byte[] decodeChecked(String input) throws AddressFormatException
input
- the base58-encoded string to decode (which should include the checksum)AddressFormatException
- if the input is not base 58 or the checksum does not validate.Copyright © 2016. All rights reserved.