public class Base58 extends Object
Base58 is a way to encode Bitcoin addresses (or arbitrary data) as alphanumeric strings. Note that this is not the same base58 as used by Flickr, which you may find referenced around the Internet. Satoshi explains: why base58 instead of standard base64 encoding? * Don’t want 0OIl characters that look the same in some fonts and could be used to create visually identical looking account numbers. * A string with nonalphanumeric characters is not as easily accepted as an account number. * Email usually won’t linebreak if there’s no punctuation to break at. * Doubleclicking selects the whole number as one word if it’s all alphanumeric. However, note that the encoding/decoding runs in O(n**2;) 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 base256 digits, convert the number to be represented using base58 digits, preserve the exact number of leading zeros (which are otherwise lost during the mathematical operations on the numbers), and finally represent the resulting base58 digits as alphanumeric ASCII characters.
Constructor and Description 

Base58() 
Modifier and Type  Method and Description 

static byte[] 
decodeChecked(String input)

static String 
encodeChecked(byte[] payload)

public static String encodeChecked(byte[] payload)
Encodes the payload as a base58 string. A checksum is appended.
payload
 the bytes to encode, e.g. pubkey hashpublic static byte[] decodeChecked(String input) throws RivetRuntimeException
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. The checksum is removed from the returned data.
input
 the base58encoded string to decode (which should include the checksum)RivetRuntimeException
 if the input is not base 58 or the checksum does not validate.