Giter Club home page Giter Club logo

arc4's Introduction

NPM version Linux Status Windows Status Dependency Status Coveralls

RC4 stream cipher. You can select from ["arc4", "rc4a", "vmpc", "rc4+"] algorithm

Encode/decode with different encodings for *String only, from nodejs doc:

  • 'ascii' - for 7 bit ASCII data only. This encoding method is very fast, and will strip the high bit if set.
  • 'utf8' - Multibyte encoded Unicode characters. Many web pages and other document formats use UTF-8.
  • 'utf16le' - 2 or 4 bytes, little endian encoded Unicode characters. Surrogate pairs (U+10000 to U+10FFFF) are supported.
  • 'ucs2' - Alias of 'utf16le'.
  • 'base64' - Base64 string encoding.
  • 'binary' - A way of encoding raw binary data into strings by using only the first 8 bits of each character. This encoding method is deprecated and should be avoided in favor of Buffer objects where possible. This encoding will be removed in future versions of Node.
  • 'hex' - Encode each byte as two hexadecimal characters.

My original python code

Installation

Install through NPM

npm install arc4

or

git clone git://github.com/hex7c0/arc4.git

API

inside nodejs project

var rc4 = require('arc4');

var cipher = rc4('arc4', 'secret_key');
var d = cipher.encodeString('ciao');
var e = cipher.decodeString(d);

Methods

change your key and reload gKsa (warning)

cipher.change('foo');
cipher.change([30, 31]);
cipher.change(new Buffer('foo'));

encode a plaintext string, you can optionally choose input (defaults to 'utf8') and output (defaults to 'hex') encoding

cipher.encodeString(plaintext [, input_encoding [, output_encoding]]);
cipher.encodeString('string', 'utf8', 'base64');

encode a plaintext array

cipher.encodeArray([49, 50, 51]);

encode a plaintext buffer data

cipher.encodeBuffer(new Buffer('ciao'));

select right function according with plaintext data type. Set input and output encoding only if data is a String

cipher.encode(your_data [, input_encoding [, output_encoding]]);

decode a ciphertext string, you can optionally choose input (defaults to 'hex') and output (defaults to 'utf8') encoding

cipher.decodeString(ciphertext [, input_encoding [, output_encoding]]);
cipher.decodeString('string', 'utf8', 'base64');

decode a ciphertext array

cipher.decodeArray([49,50,51]);

decode a ciphertext buffer data

cipher.decodeBuffer(new Buffer('ciao'));

select right function according with ciphertext data type. Set input and output encoding only if data is a String

cipher.decode(your_data [, input_encoding [, output_encoding]]);

rc4(algorithm, password [, lodash])

algorithm

  • algorithm - String Choose between ["arc4", "rc4a", "vmpc", "rc4+"] (default "throw Error")

password

  • password - String | Array | Buffer Your key (default "throw Error")

[lodash]

  • lodash - Boolean Use lodash library (check benchmark test for right decision) (default "disabled")

Examples

Take a look at my examples

arc4's People

Contributors

dragonbane0 avatar drazisil avatar hex7c0 avatar subtilior avatar

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.