@gab706/becrypt
v1.1.1
Published
Encrypt and store data like you've never seen before.
Downloads
11
Maintainers
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
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.