npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@gab706/becrypt

v1.1.1

Published

Encrypt and store data like you've never seen before.

Downloads

11

Readme

BeCrypt Module README

Overview

The BeCrypt module is a Node.js module that offers comprehensive security functionalities, including encryption, decryption, and various hashing techniques. It provides implementations for MD5 and SHA-256 hashing, along with different methods for generating random salts.

Table of Contents

  1. Installation
  2. Usage
  3. API Reference
  4. Contributing
  5. License

Installation

To use the BeCrypt module in your Node.js project, you can install it using npm:

npm install becrypt

Usage

Encryption

The BeCrypt module provides functions for encrypting and decrypting data using a complex key generated based on specified hash and salt types.

const becrypt = require('becrypt');

// Encrypt data
const { hashedKey, encryptedData } = becrypt.encrypt("Hello, World!", 'sha256', 'char');

// Decrypt data
const decryptedData = becrypt.decrypt(hashedKey, encryptedData);
console.log(decryptedData);

Hashing

BeCrypt supports MD5 and SHA-256 hashing algorithms. You can hash a string with or without salt.

const security = require('becrypt');

// Hashing with salt
const hashedWithSalt = security.md5("password123", "seed");

// Hashing without salt
const hashedWithoutSalt = security.sha256("password123");

Salting

BeCrypt provides different methods for generating random salts: charSalt, seedSalt, and sinSalt.

const security = require('becrypt');

// Generate random salts
const charSalt = security.charSalt();
const seedSalt = security.seedSalt();
const sinSalt = security.sinSalt();

API Reference

Encryption API

security.encrypt(data, hashType, saltType)

Encrypts data using a complex key generated based on the specified hash and salt types.

  • data - The data to be encrypted.
  • hashType - The hash type to be used for key generation ('md5' or 'sha256').
  • saltType - The salt type for key generation ('char', 'sin', 'seed', or null).

Returns an object containing the generated key (hashedKey) and the encrypted data (encryptedData).

{
  "hashedKey": "##############################",
  "encryptedData": "##############################"
}

security.decrypt(originalKey, encryptedData)

Decrypts the encrypted data using the original hashed key.

  • originalKey - The original hashed key used for encryption.
  • encryptedData - The encrypted data to be decrypted.

Returns the decrypted data, parsed as JSON if possible, or the raw decrypted data.

Hashing API

security.sha256(input, salt)

Hashes the input using the SHA-256 algorithm with optional salting.

  • input - The input string to be hashed.
  • salt - The type of salt to be used ('seed', 'sin', 'char', or null to not set).

Returns the hashed result with optional salt.


security.md5(input, salt)

Hashes the input using the MD5 algorithm with optional salting.

  • input - The input string to be hashed.
  • salt - The type of salt to be used ('seed', 'sin', 'char', or null to not set).

Returns the hashed result with optional salt.

Salting API

security.charSalt()

Generates a cryptographic random salt based on bitwise operators.


security.seedSalt()

Generates a random salt using a non-cryptographic pseudo-random number generator based on the time.


security.sinSalt()

Generates a cryptographic random salt based on trigonometry.

Contributing

If you'd like to contribute to this project, please read the contributing guide.

License

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