Blowfish
![Travis](https://img.shields.io/travis/com/egoroof/blowfish/master.svg?style=flat-square)
Blowfish encryption library for browsers and Node.js.
Fork updates dependencies and fixes PKCS5 padding (by @sylvainPenbase).
Table of Contents
Installation
Take latest version here or with npm:
npm install egoroof-blowfish --save
Usage
All input data including key, IV, plaintext and ciphertext should be a String
or ArrayBuffer
/ Buffer
.
Strings support all unicode including emoji ✨.
Example
const Blowfish = require('egoroof-blowfish');
const bf = new Blowfish('super key', Blowfish.MODE.ECB, Blowfish.PADDING.NULL);
bf.setIv('abcdefgh');
const encoded = bf.encode('input text even with emoji 🎅');
const decoded = bf.decode(encoded, Blowfish.TYPE.STRING);
You can play with this example in runkit: https://runkit.com/egoroof/blowfish-example
Block cipher mode of operation
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
Blowfish.MODE.ECB
Blowfish.MODE.CBC
Padding
http://www.di-mgt.com.au/cryptopad.html
Blowfish.PADDING.PKCS5
Blowfish.PADDING.ONE_AND_ZEROS
Blowfish.PADDING.LAST_BYTE
Blowfish.PADDING.NULL
Blowfish.PADDING.SPACES
Return type
Which type of data should return method decode
:
Blowfish.TYPE.STRING
Blowfish.TYPE.UINT8_ARRAY