Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

securecrypt

bluezly510MIT0.0.6TypeScript support: included

SecureCrypt: High-performance Node.js encryption library. Provides AES-256-GCM encryption, PBKDF2-based key derivation, secure file & text encryption, password generation, and multi-threaded processing for maximum speed and security.

encryption, security, cryptography, aes-gcm, pbkdf2, password-encryption, file-encryption, text-encryption, secure-password, nodejs, high-performance, multithreaded

readme

SecureCrypt

SecureCrypt is a high-performance encryption library for Node.js, designed for developers who need fast, robust encryption and secure password handling. It supports AES-256-GCM encryption, PBKDF2 password-based key derivation, file & text encryption, secure password generation, multi-threaded file processing, and file metadata verification.


Features

  • AES-256-GCM Encryption: Authenticated encryption for text and files.
  • PBKDF2 Key Derivation: Securely derive keys from passwords with configurable iterations.
  • File Encryption: Encrypt large files with progress reporting.
  • Text Encryption: Safely encrypt and decrypt strings.
  • Secure Password Generation: Generate strong, customizable random passwords.
  • Password Strength Validation: Check passwords for length, complexity, and repeated characters.
  • Multi-threaded File Processing: Encrypt multiple files in parallel using worker threads.
  • File Metadata & Info: Verify if a file is encrypted and gather metadata.
  • Secure File Wiping: Overwrite files with random data before deletion.

⚠️ The benchmark feature exists in the library but does not work reliably and may give inaccurate results.


Installation

npm install securecrypt
# or using yarn
yarn add securecrypt
`

Usage

Import Library

const SecureCrypt = require('securecrypt');

Text Encryption & Decryption

const password = 'StrongPassword123!';
const message = 'Hello, SecureCrypt!';

// Encrypt
const encrypted = SecureCrypt.encryptText(message, password);
console.log('Encrypted Data:', encrypted.encryptedData);

// Decrypt
const decrypted = SecureCrypt.decryptText(encrypted.encryptedData, password);
if (decrypted.success) {
    console.log('Decrypted Text:', decrypted.decryptedText);
} else {
    console.error('Decryption Failed:', decrypted.error);
}

File Encryption & Decryption

const inputFile = './example.txt';
const encryptedFile = './example.txt.secrypt';
const decryptedFile = './example_decrypted.txt';

// Encrypt file
SecureCrypt.encryptFile(inputFile, encryptedFile, password, {
    onProgress: (progress) => console.log(`Encrypting: ${progress.percentage.toFixed(2)}%`)
}).then(result => {
    console.log('File encrypted successfully', result);

    // Decrypt file
    return SecureCrypt.decryptFile(encryptedFile, decryptedFile, password, {
        onProgress: (progress) => console.log(`Decrypting: ${progress.percentage.toFixed(2)}%`)
    });
}).then(result => {
    console.log('File decrypted successfully', result);
}).catch(err => {
    console.error(err);
});

Generate Secure Passwords

const password = SecureCrypt.generateSecurePassword(16);
console.log('Generated Password:', password);

Validate Password Strength

const result = SecureCrypt.validatePassword('WeakPass123');
console.log(result);

/*
Example output:
{
  isValid: false,
  score: 3,
  feedback: ["Password should contain special characters"],
  strength: "Weak"
}
*/

Check if File is Encrypted

if (SecureCrypt.isEncryptedFile('./example.txt.secrypt')) {
    console.log('File is encrypted with SecureCrypt.');
}

Get File Info

const info = SecureCrypt.getFileInfo('./example.txt.secrypt');
console.log(info);

/*
Example output:
{
  path: './example.txt.secrypt',
  size: 12345,
  isFile: true,
  encrypted: true,
  algorithm: 'aes-256-gcm',
  iterations: 100000,
  encryptedSize: 12300,
  created: 2025-09-14T00:00:00.000Z,
  modified: 2025-09-14T00:01:00.000Z,
}
*/

Securely Wipe a File

SecureCrypt.secureWipeFile('./secret.txt', 3)
    .then(() => console.log('File securely wiped'))
    .catch(err => console.error(err));

Multi-threaded File Encryption

const files = ['./file1.txt', './file2.txt'];
SecureCrypt.encryptFilesParallel(files, password, { workers: 2, outputDir: './encrypted' })
    .then(results => console.log('Parallel encryption results:', results))
    .catch(err => console.error(err));

System Information

console.log(SecureCrypt.getSystemInfo());

/*
Example output:
{
  platform: 'win32',
  architecture: 'x64',
  cpus: 8,
  totalMemory: '16384MB',
  freeMemory: '8192MB',
  nodeVersion: 'v20.0.0',
  recommendedChunkSize: 65536,
  version: '0.x.x'
}
*/

License

MIT © 2025 Bluezly