1.0.1 • Published 6 years ago

awcrypt v1.0.1

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

awCrypt

A NPM package that provides functions for data transformation.

Installing

To install run:

npm install awcrypt

Usage

Import the module:

import { <module_name> } from 'awcrypt';

The following modules are available:

Ascii85

Ascii85 (or Base85) is a coding system created by Paul E. Rutter similar to base64 encoding, using 5 ASCII characters to code 4 bytes. ASCII 85 is used in PDF file format for example.

https://www.dcode.fr/ascii-85-encoding

import { ascii85 } from 'awcrypt';
interface ascii85 {
    encode: (inputText: string) => string;
    decode: (inputText: string) => string;
}

Base64

Encoding scheme that represent binary data in an ASCII string format by translating it into a radix-64 representation. Each base64 digit represents exactly 6 bits of data. Three 8-bit bytes (i.e., a total of 24 bits) can therefore be represented by four 6-bit base64 digits.

https://en.wikipedia.org/wiki/Base64

import { base64 } from 'awcrypt';
interface base64 {
    encode: (inputText: string) => string;
    decode: (inputText: string) => string;
}

Caesar Cipher

One of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet

https://en.wikipedia.org/wiki/Caesar_cipher

import { caesar } from 'awcrypt';
interface caesar {
    encode: (plaintext: string, key: number) => string;
    decode: (ciphertext: string, key: number) => string;
}

Charcode Shift

Similar to caesar, but not restricted to alphabet - it is a type of substitution cipher in which each unicode character in the plaintext is replaced by another unicode character some fixed number of positions down the charcode.

import { charcodeShift } from 'awcrypt';
interface charcodeShift {
    encode: (plaintext: string, key: number) => string;
    decode: (ciphertext: string, key: number) => string;
}

Morse Code

Encodes the ISO basic Latin alphabet, some extra Latin letters, the Arabic numerals and a small set of punctuation and procedural signals (prosigns) as standardized sequences of short and long signals called "dots" and "dashes"

https://en.wikipedia.org/wiki/Morse_code

import { morse } from 'awcrypt';
interface morse {
    encode: (plaintext: string) => string;
    decode: (ciphertext: string) => string;
}

Ciphertext needs to have a single-space character separator and ' / ' as word separator. Example: .-.. --- .-. . -- / .. .--. ... ..- -- / -.. --- .-.. --- .-.

Rail fence cipher

A form of transposition cipher.

https://en.wikipedia.org/wiki/Rail_fence_cipher

import { railFence } from 'awcrypt';
interface railFence {
    encode: (plaintext: string, numberOfRails: number) => string;
    decode: (ciphertext: string, numberOfRails: number) => string;
}

Keyword substitution cipher

A form of monoalphabetic substitution. A keyword is used as the key, and it determines the letter matchings of the cipher alphabet to the plain alphabet. Similar to keyword cipher, but the way of generating cipher alphabet is a bit different. https://en.wikipedia.org/wiki/Keyword_cipher

import { substitution } from 'awcrypt';
interface substitution {
    encode: (plaintext: string, keyword: string) => string;
    decode: (ciphertext: string, keyword: string) => string;
}

Running the tests

Run

npm test

Versioning

We use SemVer for versioning.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details