Giter VIP home page Giter VIP logo

base32.js's Introduction

Base 32 for JavaScript Build Status

Wikipedia:

Base32 is a base 32 transfer encoding using the twenty-six letters Aโ€“Z and six digits 2โ€“7. It is primarily used to encode binary data, but is able to encode binary text like ASCII.

Base32 has number of advantages over Base64:

  1. The resulting character set is all one case (usually represented as uppercase), which can often be beneficial when using a case-insensitive filesystem, spoken language, or human memory.

  2. The result can be used as file name because it can not possibly contain '/' symbol which is usually acts as path separator in Unix-based operating systems.

  3. The alphabet was selected to avoid similar-looking pairs of different symbols, so the strings can be accurately transcribed by hand. (For example, the symbol set omits the symbols for 1, 8 and zero, since they could be confused with the letters 'I', 'B', and 'O'.)

  4. A result without padding can be included in a URL without encoding any characters.

However, Base32 representation takes roughly 20% more space than Base64.

Documentation

Full documentation at http://speakeasyjs.github.io/base32.js/

Installation

$ npm install base32.js

Usage

Encoding an array of bytes using Crockford:

var base32 = require("base32.js");

var buf = [1, 2, 3, 4];
var encoder = new base32.Encoder({ type: "crockford", lc: true });
var str = encoder.write(buf).finalize();
// str = "04106173"

var decoder = new base32.Decoder({ type: "crockford" });
var out = decoder.write(str).finalize();
// out = [1, 2, 3, 4]

The default Base32 variant if no type is provided is "rfc4648" without padding.

Browser support

The browser versions of the library may be found under the dist/ directory. The browser files are updated on each versioned release, but not for development. Karma is used to run the mocha tests in the browser.

$ npm install -g karma-cli
$ npm run karma

Related projects

License

MIT

base32.js's People

Contributors

beaulac avatar jakelee8 avatar kyledrake avatar mikepb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

base32.js's Issues

Does not correctly handle base32 that is not a multiple of 8 in length

Found while investigating a bug in speakeasy. It's easy to demonstrate that values of length, 8, 16, 24 etc. roundtrip correctly, but other lengths do not:

> b.encode(b.decode("ABCDEFGH"))
'ABCDEFGH'
> b.encode(b.decode("ABCDEFG"))
'ABCDEFGA'
> b.encode(b.decode("ABCDEFG="))
'ABCDEFGA'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.