string-codec
v0.1.0
Published
Encoder/Decoder of various algorithm
Downloads
2,339
Maintainers
Readme
string-codec
Encoder/Decoder of various algorithm
Installation
via npm (node package manager)
$ 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');
// => <Buffer 68 65 6c 6c 6f>
encbuf = codec.bufferEncoder(buffer,'base64');
// => <Buffer 61 47 56 73 62 47 38 3d>
encbuf.toString();
// => 'aGVsbG8='
decbuf = codec.bufferDecoder(encbuf,'base64');
// => <Buffer 68 65 6c 6c 6f>
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/rot47rev (reverse string)url (url encoding)lowerupperpunycode|string|string| |base64base85 (z85)ascii85base91crc1/crc8/crc16/crc24/crc32adler32md4md5shasha1sha224sha256sha384sha512rmd160whirlpool|stringorBuffer|stringorBuffer|
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/rot47revurlpunycode|string|string| |base64base85 (z85)ascii85base91md5|stringorBuffer|stringorBuffer|
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
- Ascii85(base85)/z85(ZeroMQ) huandu/node-ascii85
- rot5/rot13/rot18/rot47 schnittstabil/caesar-salad
- crc1/crc8/crc16/crc24/crc32 alexgorbatchev/node-crc
- adler32 SheetJS/js-adler32
- MD5 decrypter MD5-hash.com