Class Base58
- java.lang.Object
-
- org.apache.commons.codec.binary.BaseNCodec
-
- org.apache.commons.codec.binary.Base58
-
- All Implemented Interfaces:
BinaryDecoder,BinaryEncoder,Decoder,Encoder
public class Base58 extends BaseNCodec
Provides Base58 encoding and decoding as commonly used in cryptocurrency and blockchain applications.Base58 is a binary-to-text encoding scheme that uses a 58-character alphabet to encode data. It avoids characters that can be confused (0/O, I/l, +/) and is commonly used in Bitcoin and other blockchain systems.
This implementation accumulates data internally until EOF is signaled, at which point the entire input is converted using BigInteger arithmetic. This is necessary because Base58 encoding/decoding requires access to the complete data to properly handle leading zeros.
This class is thread-safe for read operations but the Context object used during encoding/decoding should not be shared between threads.
The Base58 alphabet is:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
This excludes:
0,I,O, andl.- Since:
- 1.22.0
- See Also:
Base58InputStream,Base58OutputStream, The Base58 Encoding Scheme draft-msporny-base58-03
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBase58.BuilderBuildsBase58instances with custom configuration.-
Nested classes/interfaces inherited from class org.apache.commons.codec.binary.BaseNCodec
BaseNCodec.AbstractBuilder<T,B extends BaseNCodec.AbstractBuilder<T,B>>
-
-
Field Summary
-
Fields inherited from class org.apache.commons.codec.binary.BaseNCodec
DECODING_POLICY_DEFAULT, lineLength, MASK_8BITS, MIME_CHUNK_SIZE, pad, PAD, PAD_DEFAULT, PEM_CHUNK_SIZE
-
-
Constructor Summary
Constructors Constructor Description Base58()Constructs a Base58 codec used for encoding and decoding.Base58(Base58.Builder builder)Constructs a Base58 codec used for encoding and decoding with custom configuration.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Base58.Builderbuilder()Creates a new Builder.protected booleanisInAlphabet(byte value)Returns whether or not theoctetis in the Base58 alphabet.-
Methods inherited from class org.apache.commons.codec.binary.BaseNCodec
containsAlphabetOrPad, decode, decode, decode, encode, encode, encode, encodeAsString, encodeToString, ensureBufferSize, getChunkSeparator, getCodecPolicy, getDefaultBufferSize, getEncodedLength, isInAlphabet, isInAlphabet, isStrictDecoding, isWhiteSpace
-
-
-
-
Constructor Detail
-
Base58
public Base58()
Constructs a Base58 codec used for encoding and decoding.
-
Base58
public Base58(Base58.Builder builder)
Constructs a Base58 codec used for encoding and decoding with custom configuration.- Parameters:
builder- the builder with custom configuration.
-
-
Method Detail
-
builder
public static Base58.Builder builder()
Creates a new Builder.To configure a new instance, use a
Base58.Builder. For example:Base58 base58 = Base58.builder() .setEncode(true) .get()
- Returns:
- a new Builder.
-
isInAlphabet
protected boolean isInAlphabet(byte value)
Returns whether or not theoctetis in the Base58 alphabet.- Specified by:
isInAlphabetin classBaseNCodec- Parameters:
value- The value to test.- Returns:
trueif the value is defined in the Base58 alphabetfalseotherwise.
-
-