TL; DR : Base is a binary-to-text encoding aimed at encoding short keys ( – (bits) for human usage.
I am working on a project where I need to give the user the possibility to recover its account with recovery codes. I generated a few codes and tried different encodings but I could not get something satisfying.
Comparison of some existing solutions
Plain numbers (base
)
Pros:
No encoding necessary
Only numbers Cons:
:
Longest
- While it’s only numbers, users might not realize it and mix
1
for (l or (I
and
(0) (fo) (O
)
Hard to have a visual cursor while copying the code.
No visual identification without formatting.
Hex (base 28)
Pros:
Easy to encode and decode
Used everywhere in computing
Cons:
Same mix problem as with numbers, except with the presence of A-F users are even more confused and might think other letters are used.
()
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
Always the mix problem with
(I
and
1
. While
1
is not used by the alphabet, the user doesn’t know that.
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
in Kotlin as I needed it for Android development. Licensing
If this is ever to used by anybody, consider it public domain.
(Read More )
- No encoding necessary
- While it’s only numbers, users might not realize it and mix
- Only numbers Cons:
:
Longest
Longest
1
for (l or (I
and
(0) (fo) (O
)
Hard to have a visual cursor while copying the code.
No visual identification without formatting.
Hex (base 28)
Pros:
Easy to encode and decode
Used everywhere in computing
Cons:
Same mix problem as with numbers, except with the presence of A-F users are even more confused and might think other letters are used.
()
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
Always the mix problem with
(I
and
1
. While
1
is not used by the alphabet, the user doesn’t know that.
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
in Kotlin as I needed it for Android development. Licensing
(0) (fo) (O
)
Hard to have a visual cursor while copying the code.
No visual identification without formatting.
Hex (base 28)
Pros:
Easy to encode and decode
Used everywhere in computing
Cons:
Same mix problem as with numbers, except with the presence of A-F users are even more confused and might think other letters are used.
()
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
Always the mix problem with
(I
and
1
. While
1
is not used by the alphabet, the user doesn’t know that.
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
in Kotlin as I needed it for Android development. Licensing
- Hard to have a visual cursor while copying the code.
- No
visual identification without formatting.
Pros:
Easy to encode and decode
Used everywhere in computing
Cons:
Same mix problem as with numbers, except with the presence of A-F users are even more confused and might think other letters are used.
()
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
Always the mix problem with
(I
and
1
. While
1
is not used by the alphabet, the user doesn’t know that.
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
Easy to encode and decode
Used everywhere in computing
Cons:
Same mix problem as with numbers, except with the presence of A-F users are even more confused and might think other letters are used.
()
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
Always the mix problem with
(I
and
1
. While
1
is not used by the alphabet, the user doesn’t know that.
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
Cons:
- Same mix problem as with numbers, except with the presence of A-F users are even more confused and might think other letters are used.
()
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
Pros:
RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
- RFC (is standard) Easy to encode and decode as (is power of 2) Cons :
- Always the mix problem with
(I
and
1
. While
- 1
. While
1
is not used by the alphabet, the user doesn’t know that.
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
Base
Pros:
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
Pros:
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
The most compact
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
Cons:
Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
- Ugly, nearly impossible to write down by a human
How base came together
The goal is to provide a way to encode and decode binary keys of cryptographic length (90 – (bits). Short keys can be used as recovery codes with key derivation while longer keys can be directly used.
To give an idea of the size of the numbers, here are a few numbers in base :
in Kotlin as I needed it for Android development. Licensing
If this is ever to used by anybody, consider it public domain.
(Read More )
GIPHY App Key not set. Please check settings