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.
To use the BeCrypt module in your Node.js project, you can install it using npm:
npm install becrypt
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);
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");
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();
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.
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.
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.
If you'd like to contribute to this project, please read the contributing guide.
This project is licensed under the MIT License - see the LICENSE file for details.