Coder Social home page Coder Social logo

basic32's Introduction

Basic32

Basic32 encodes and decodes OTP (One-time passcode) tokens to and from a standard length Base32 string, effectively making them shorter.

Why?

Basic32 decreases the number of characters needed for a OTP code, making the code easier for users to remember.

Regular TOTP Encoded TOTP
6 digits 4 chars
7 digits 5 chars
8 digits 6 chars
9 digits 6 chars

Installation

npm i basic32
import Basic32 from 'basic32';

Usage

import Basic32 from 'basic32';

/* Initialize the encoder */
const basic = new Basic32(/* Number of digits in OTP code, default: 6 */);

/* Encode a number or string */
basic.encode(123456); // -> "3WX0"
basic.encode('123456'); // -> "3WX0"

/* Decode a string */
basic.decode('3WX0'); // -> "123456"

/* Decode a string, but zero is switched with letter o */
basic.decode('3WXO'); // -> "123456"

/* Decode the wrong number of characters */
basic.decode('3WX0A'); // -> new Error("Code should be 4 alphanumeric characters")

/* Decode an already decoded string */
basic.decode('123456'); // -> "123456"

Character Corrections

The following character transposition errors are automatically fixed.

User Writes Interpreted
(Letter) O (Number) 0
(Letter) I (Number) 1
(Letter) L (Number) 1
(Letter) B (Number) 8

License

MIT © 2021 Russell Steadman. See LICENSE.

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.