Class Base58
- All Implemented Interfaces:
BinaryDecoder,BinaryEncoder,Decoder,Encoder
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, and l.
- Since:
- 1.22.0
- See Also:
-
Nested Class Summary
Nested ClassesNested 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
ConstructorsConstructorDescriptionBase58()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
Modifier and TypeMethodDescriptionstatic 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 Details
-
Base58
public Base58()Constructs a Base58 codec used for encoding and decoding. -
Base58
Constructs a Base58 codec used for encoding and decoding with custom configuration.- Parameters:
builder- the builder with custom configuration.
-
-
Method Details
-
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
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.
-