# string-codec

> Encoder/Decoder of various algorithm

Latest version **0.1.0** (published 2016-10-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install string-codec
pnpm add string-codec
yarn add string-codec
bun add string-codec
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2016-10-20 |
| First published | 2015-03-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | knjcode |
| Maintainers | knjcode |
| Keywords | string, hex, encode, encrypt, hash, decode, decrypt, crypt, cipher |

## Links

- npm: https://www.npmjs.com/package/string-codec
- Repository: https://github.com/knjcode/string-codec
- Issues: https://github.com/knjcode/string-codec/issues
- npm.io page: https://npm.io/package/string-codec

## Dependencies (6)

- [crc](https://npm.io/package/crc.md) ^3.2.1
- [ascii85](https://npm.io/package/ascii85.md) ^0.1.0
- [cheerio](https://npm.io/package/cheerio.md) ^0.22.0
- [adler-32](https://npm.io/package/adler-32.md) ^1.0.0
- [caesar-salad](https://npm.io/package/caesar-salad.md) ^1.0.1
- [sync-request](https://npm.io/package/sync-request.md) ^3.0.1

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 0.1.0 (latest) — 2016-10-20
- 0.0.7 — 2015-05-07
- 0.0.6 — 2015-03-31
- 0.0.5 — 2015-03-28
- 0.0.4 — 2015-03-25
- 0.0.3 — 2015-03-22
- 0.0.2 — 2015-03-17
- 0.0.1 — 2015-03-12

## 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');
    // => <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/rot47<br>rev (reverse string)<br>url (url encoding)<br>lower<br>upper<br>punycode|string|string|
|base64<br>base85 (z85)<br>ascii85<br>base91<br>crc1/crc8/crc16/crc24/crc32<br>adler32<br>md4<br>md5<br>sha<br>sha1<br>sha224<br>sha256<br>sha384<br>sha512<br>rmd160<br>whirlpool|string<br>or<br>Buffer|string<br>or<br>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<br>rev<br>url<br>punycode|string|string|
|base64<br>base85 (z85)<br>ascii85<br>base91<br>md5|string<br>or<br>Buffer|string<br>or<br>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

---
_Source: https://npm.io/package/string-codec · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
