2.1.0 • Published 1 year ago

neboris v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

neboris

A package that allows you encrypt and decrypt text and buffers easily, this package uses aes-256-ctr and hashes with sha512 to encrypt and decrypt text and buffers with Initialization Vectors.

Install

This package can be installed with your preferred package manager for Node.js

$ npm install neboris
$ yarn add neboris
$ pnpm add neboris

Benchmark

This package could be a replacement for another package named aes256 and is faster in benchmarks. Bechmarks are ran using the benchmark package. All the benchmark is doing is that it's encrypting and decrypting Hello World! in both text and buffer form using the same key. This benchmark is being ran on a x86_64 GNU/Linux machine.

Want to test it yourself? Go ahead, you can find the script here. If you do run this script you will need to install the required dependencies with your preferred package manager.

Usage

This package can be used in CommonJS, ESM or Typescript. This package only has one single class Instance that only has two functions which are encrypt and decrypt. The Instance constructor takes one argument which is a string and thats for the key. For both encrypt and decrypt functions they both take one argument that can be either a string or a buffer. In this example the package will encrypt Hello World in both text and buffer form and decrypt it.

const Instance = require('neboris');
const neboris = new Instance('INSERT_KEY_HERE');

const encryptedText = neboris.encrypt('Hello World!');
const decryptedText = neboris.decrypt(encryptedText);
console.log(encryptedText, decryptedText);

const encryptedBuffer = neboris.encrypt(Buffer.from('Hello World!'));
const decryptedBuffer = neboris.decrypt(encryptedBuffer);
console.log(encryptedBuffer, decryptedBuffer);

You can generate a key by using the built in crypto module.

const { randomBytes } = require('crypto');
console.log(randomBytes(32).toString('hex'));

Notice

This package shouldn't be used to encrypt passwords, you should use bcrypt instead.

License

This project is currently under the MIT license.