https://github.com/knjcode/string-codec
Encoder/Decoder of various algorithm
https://github.com/knjcode/string-codec
string-algorithms
Last synced: about 2 months ago
JSON representation
Encoder/Decoder of various algorithm
- Host: GitHub
- URL: https://github.com/knjcode/string-codec
- Owner: knjcode
- License: mit
- Created: 2015-03-12T23:13:56.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2016-10-20T14:35:27.000Z (over 9 years ago)
- Last Synced: 2024-08-10T10:57:50.709Z (over 1 year ago)
- Topics: string-algorithms
- Language: JavaScript
- Homepage:
- Size: 57.6 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# string-codec
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]
Encoder/Decoder of various algorithm
## Installation
via [npm (node package manager)](http://github.com/npm/npm)
$ npm install string-codec
## Usage Example
Require package:
var codec = require('string-codec');
Encode to Base64:
codec.encoder('hello','base64');
// => 'aGVsbG8='
Decode from Base64:
codec.decoder('aGVsbG8=','base64');
// => 'hello'
Encode Buffer to Base64:
buffer = new Buffer('hello');
// =>
encbuf = codec.bufferEncoder(buffer,'base64');
// =>
encbuf.toString();
// => 'aGVsbG8='
decbuf = codec.bufferDecoder(encbuf,'base64');
// =>
decbuf.toString();
// => 'hello'
List supported algorithm:
var codec = require('string-codec');
// list array of encoding algorithm
codec.ENC_ALGOS
// => ["hex","ascii","base64","base85","z85","ascii85","base91","rot5",
"rot13", "rot18", "rot47","rev","crc1","crc8","crc16","crc24",
"crc32","adler32","url","unixtime","lower","upper","punycode", etc.
// list array of decoding algorithm
codec.DEC_ALGOS
// => ["hex","ascii","base64","base85","z85","ascii85","base91","rot5",
"rot13","rot18","rot47","rev","url","unixtime","punycode", etc.
## API
__encoder(String input, String algorithm)__
encode input with specified algorithm
__bufferEncoder(Buffer input, String algorithm)__
encode input buffer with specified algorithm
__decoder(String input, String algorithm)__
decode input with specified algorithm
__bufferDecoder(Buffer input, String algorithm)__
decode input buffer with specified algorithm
__ENC_ALGOS__
list supported encoding algorithm
__ENC_HASHES__
list supported hash algorithm
__ENC_ALL__
list all supported encoding algorithm (ENC_ALGOS + ENC_HASHES)
__DEC_ALGOS__
list supported decoding algorithm
__DEC_HASHES__
list supported hash decryption algorithm
__DEC_ALL__
list all supported decoding algorithm (DEC_ALGOS + DEC_HASHES)
## Supported specifications
### encoder / bufferEncoder
__encoder__ requires string input and outputs string
__bufferEncoder__ requires Buffer input and outputs Buffer
|algorithm|input|output|
|:--|:--|:--|
|hex|string|hex string|
|ascii|hex string|string|
|unixtime|date string|unix timestamp|
|rot5/rot13/rot18/rot47
rev (reverse string)
url (url encoding)
lower
upper
punycode|string|string|
|base64
base85 (z85)
ascii85
base91
crc1/crc8/crc16/crc24/crc32
adler32
md4
md5
sha
sha1
sha224
sha256
sha384
sha512
rmd160
whirlpool|string
or
Buffer|string
or
Buffer|
### decode / bufferDecoder
__decoder__ requires string input and outputs string
__bufferDecoder__ requires Buffer input and outputs Buffer
|algorithm|input|output|
|:--|:--|:--|
|hex|hex string|string|
|ascii|string|hex string|
|unixtime|unix timestamp|date string|
|rot5/rot13/rot18/rot47
rev
url
punycode|string|string|
|base64
base85 (z85)
ascii85
base91
md5|string
or
Buffer|string
or
Buffer|
### Input hex string
Accept hex string prefixed with '0x' or separated by a colon (:)
codec.decoder('616263','hex');
// => abc
codec.decoder('0x616263','hex');
// => abc
codec.decoder('61:62:63','hex');
// => abc
codec.decoder('0x61:62:63','hex');
// => abc
## Running tests
$ git clone https://github.com/knjcode/string-codec.git
$ cd string-codec
$ npm install
$ npm test
## Acknowledgements
- @_rintaro_f
- @inaz2
- basE91 based on [mscdex/base91.js](https://github.com/mscdex/base91.js)
- Ascii85(base85)/z85(ZeroMQ) [huandu/node-ascii85](https://github.com/huandu/node-ascii85)
- rot5/rot13/rot18/rot47 [schnittstabil/caesar-salad](https://github.com/schnittstabil/caesar-salad)
- crc1/crc8/crc16/crc24/crc32 [alexgorbatchev/node-crc](https://github.com/alexgorbatchev/node-crc)
- adler32 [SheetJS/js-adler32](https://github.com/SheetJS/js-adler32)
- MD5 decrypter [MD5-hash.com](http://www.md5-hash.com)
[npm-url]: https://npmjs.org/package/string-codec
[npm-image]: https://badge.fury.io/js/string-codec.svg
[travis-url]: https://travis-ci.org/knjcode/string-codec
[travis-image]: https://travis-ci.org/knjcode/string-codec.svg?branch=master