The CryptoDriver is a simple and easy-to-use encryption class, manages cipher and decipher of data using the Advanced Encryption Standard (AES) AES-256-GCM algorithm with a user-provided password. This algorithm uses a 256-bit key and is considered one of the most secure symmetric encryption algorithms available.
You can install CryptoDriver via npm:
npm install crypto-driverTo use CryptoDriver in your JavaScript application, first import it:
// Using ES6 imports
import CryptoDriver from 'crypto-driver';
// Using Node.js `require()`
const CryptoDriver = require('crypto-driver');The CryptoDriver module is a class that needs to be instantiated with a password before it can be used. Once instantiated, you can use the encrypt() and decrypt() methods to encrypt and decrypt data.
const CryptoDriver = require('crypto-driver');
const password = 'this is secret';
const crypto = new CryptoDriver(password);
const data = 'This is my secret message';
// Encrypt the original data
const encrypted = crypto.encrypt(data);
// Decrypt the encrypted data
const decrypted = crypto.decrypt(encrypted);
console.log(data); // This is my secret message
console.log(encrypted); // 2fV+Hd1vN6rByYjKsNixNl2eDvUJziG/6kKj8zJb+zk=BvLrZrTjTxbV6QAAAAA
console.log(decrypted ); // This is my secret messageCreates an instance of the CryptoDriver class.
Arguments
| Name | Type | Description |
|---|---|---|
password |
string |
The password used for encryption and decryption. Must be a string of 32 characters. |
Throws
| Type | Description |
|---|---|
ReferenceError |
If the password value is undefined. |
TypeError |
If the password value is not a string. |
Example
const CryptoDriver = require('crypto-driver');
const password = 'this is secret';
const crypto = new CryptoDriver(password);Encrypts the specified data using the AES-256-GCM encryption algorithm.
Arguments
| Name | Type | Description |
|---|---|---|
data |
string |
The data to be encrypted. Must be a string. |
Returns
A string representing the encrypted data.
Throws
| Type | Description |
|---|---|
ReferenceError |
If the data value is undefined. |
TypeError |
If the data value is not a string. |
Example
const encrypted = crypto.encrypt('This is my secret message');Decrypts the specified encrypted data using the AES-256-GCM encryption algorithm.
Arguments
| Name | Type | Description |
|---|---|---|
encrypted |
string |
The encrypted data to be decrypted. Must be a string. |
Returns
A string representing the decrypted data.
Throws
| Type | Description |
|---|---|
ReferenceError |
If the encrypted value is undefined. |
TypeError |
If the encrypted value is not a string. |
Example
const encrypted = crypto.encrypt('This is my secret message');
const decrypted = crypto.decrypt(encrypted);When using CryptoDriver, it's important to keep in mind the following security considerations:
- Always use a strong encryption key. This means using a key that is long, random, and not easily guessable.
- Do not hardcode your encryption key in your application code. Instead, consider using an environment variable or other secure method for storing your key.
- Make sure to handle your encrypted data securely, especially when transmitting it over a network or storing it in a database. This may involve using additional security measures such as HTTPS or SSL/TLS.
If you encounter any bugs or issues with CryptoDriver, please open an issue on the GitHub repository. Pull requests are also welcome!
CryptoDriver is released under the MIT License.