Base 32 is between hexadecimal notation and Base 64 encoding. It's intended to be a human-friendly -- you don't have to worry about punctuation, capitalization, or letters/numbers that are easy to confuse, making it easier to transmit in handwriting or over the phone.
Base 32 will work the same with upper- or lowercase, you can mistake a number for a similar-looking letter, and it will still decode to the same data.
In your shell, install with npm:
npm install base32libIn your code:
constbase32lib=require('base32lib')// encodings available: crockford, rfc4648, z-32, geohash, 32hex// The default one is RFC4648constencoded=base32lib.encode('some data to encode 123','rfc4648')//onxw2zjamrqxiyjaorxsazlomnxwizjagezdg===constencoded2=base32lib.encode('Some data to encOde 123')//onxw2zjamrqxiyjaorxsazlomnxwizjagezdg===console.log(encoded===encoded2)// trueconstdecoded=base32lib.decode(encoded)// some data to encode 123The main specifications of something called "Base 32" are present in this library: RFC4648, Crockford, z-32, geohash, 32hex - see Wikipedia for some of them.
- When decoding, capital letters are converted to lowercase and the depending on the spec "ambiguous" letters mentioned might be converted to their numeric counterparts.
- Each character corresponds to 5 bits of input.
- Lexicographic order of strings is preserved through Base 32 encoding.
Under MIT License.