Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/outofsyncstudios/aescrypt-helper

Simple tools to deal with the AES-256-CBC encryption and decryption of data with arbitrary lengths
https://github.com/outofsyncstudios/aescrypt-helper

nodejs npm open-source

Last synced: about 2 months ago
JSON representation

Simple tools to deal with the AES-256-CBC encryption and decryption of data with arbitrary lengths

Awesome Lists containing this project

README

        

# aescrypt-helper

[![NPM](https://nodei.co/npm/@outofsync/aescrypt-helper.png?downloads=true)](https://nodei.co/npm/@outofsync/aescrypt-helper/)

[![Actual version published on npm](http://img.shields.io/npm/v/@outofsync/aescrypt-helper.svg)](https://www.npmjs.org/package/@outofsync/aescrypt-helper)
[![Total npm module downloads](http://img.shields.io/npm/dt/@outofsync/aescrypt-helper.svg)](https://www.npmjs.org/package/@outofsync/aescrypt-helper)
[![Master build](https://github.com/OutOfSyncStudios/aescrypt-helper/actions/workflows/build-master.yml/badge.svg)](https://github.com/OutOfSyncStudios/aescrypt-helper/actions/workflows/build-master.yml)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/eebdf6aed1a14a3e9a44a017e4ac8ac2)](https://www.codacy.com/gh/OutOfSyncStudios/aescrypt-helper/dashboard?utm_source=github.com&utm_medium=referral&utm_content=OutOfSyncStudios/aescrypt-helper&utm_campaign=Badge_Grade)
[![Codacy Coverage Badge](https://app.codacy.com/project/badge/Coverage/eebdf6aed1a14a3e9a44a017e4ac8ac2)](https://www.codacy.com/gh/OutOfSyncStudios/aescrypt-helper/dashboard?utm_source=github.com&utm_medium=referral&utm_content=OutOfSyncStudios/aescrypt-helper&utm_campaign=Badge_Coverage)
[![Dependencies badge](https://david-dm.org/gh/OutOfSyncStudios/aescrypt-helper.svg)](https://david-dm.org/OutOfSyncStudios/aescrypt-helper?view=list)

`aescrypt-helper` is a pure Node.js set of simple tools to deal with the AES-256-CBC encryption and decryption of data with arbitrary lengths.

# [Installation](#installation)

```shell
npm install @outofsync/aescrypt-helper
```

# [Usage](#usage)

```js
const AESCryptHelper = require('@outofsync/aescrypt-helper');

const secret = '41e8c08ff31f97547ac11cc47c29f8ce5cb187a70ef09226c0f025c25c55b5b3';
const iv = '3816d1474cf82f3182b83c390d3e8eb5';
const creds = { secret: null, iv: null };

creds.secret = Buffer.from(secret, 'hex');
creds.iv = Buffer.from(iv, 'hex');
const aescyptHelper = new AESCryptHelper(creds.secret, creds.iv);

console.log(aescryptHelper.decryptiv(aescryptHelper.encryptiv('Test Message')));
```

# [API Reference](#api)

## AESCryptHelper constructor(secret, iv[, separator]) ⟾ instanceof AESCryptHelper
Create an instance of AESCryptHelper using the `secret`, and `iv` (initialization vector). A `separator`
may also be specified to indicate how blocks are separated; however, this is unnecessary and only included
for backwards compatibility. By default, no separator is used.

***Note***: The `iv` should exactly 16 bytes in length and the `secret` should be exactly 32 bytes in length.

## AESCryptHelper.encryptiv(data [, secret] [, iv]) ⟾ Buffer
Encrypt the `data` Buffer with the configured `secret` or the optionally passed `secret` and the configured `iv` or the optionally passed `iv`. Returns the encrypted data in a Buffer.

## AESCryptHelper.decryptiv(encryptedData [, secret] [, iv]) ⟾ Buffer
Decrypts the `encryptedData` Buffer with the configured `secret` or the optionally passed `secret` and the configured `iv` or the optionally passed `iv`. Returns the decrypted data in a Buffer.

# [License](#license)

Copyright (c) 2018-2021 Out of Sync Studios LLC -- Licensed under the MIT license.