What is cryptr?
Cryptr is a simple encryption and decryption library for Node.js. It uses the AES-256-GCM algorithm to securely encrypt and decrypt strings.
What are cryptr's main functionalities?
Encryption
This feature allows you to encrypt a string using a secret key. The encrypted string can be safely stored or transmitted.
const Cryptr = require('cryptr');
const cryptr = new Cryptr('myTotallySecretKey');
const encryptedString = cryptr.encrypt('myString');
console.log(encryptedString);
Decryption
This feature allows you to decrypt a previously encrypted string using the same secret key. The decrypted string is the original plaintext.
const Cryptr = require('cryptr');
const cryptr = new Cryptr('myTotallySecretKey');
const decryptedString = cryptr.decrypt(encryptedString);
console.log(decryptedString);
Other packages similar to cryptr
crypto-js
CryptoJS is a widely-used library that provides a variety of cryptographic algorithms including AES, DES, and SHA. It offers more flexibility and options compared to Cryptr, but may require more configuration.
bcrypt
Bcrypt is a library specifically designed for hashing passwords. While it does not provide general-purpose encryption and decryption like Cryptr, it is highly effective for securely storing passwords.
node-forge
Node-forge is a comprehensive library that provides a wide range of cryptographic tools including encryption, decryption, hashing, and digital signatures. It is more feature-rich compared to Cryptr but also more complex to use.
cryptr
cryptr is a simple aes-256-gcm
encrypt and decrypt module for node.js
It is for doing simple encryption of values UTF-8 strings that need to be decrypted at a later time.
If you require anything more than that you probably want to use something more advanced or crypto directly.
The Cryptr constructor takes 1 required argument, and an optional options object.
Cryptr(secret[, options])
- secret:
<string>
- options:
<Object>
- encoding:
<string>
Defaults to 'hex' (see Node.js Buffer documentation for valid options) - pbkdf2Iterations:
<number>
Defaults to 100000 - saltLength:
<number>
Defaults to 64
The salt
and iv
are randomly generated and prepended to the result.
DO NOT USE THIS MODULE FOR ENCRYPTING PASSWORDS!
Passwords should be a one way hash. Use bcrypt for that.
Install
npm install cryptr
Usage
const Cryptr = require('cryptr');
const cryptr = new Cryptr('myTotallySecretKey');
const encryptedString = cryptr.encrypt('bacon');
const decryptedString = cryptr.decrypt(encryptedString);
console.log(encryptedString);
console.log(decryptedString);
With Options
const Cryptr = require('cryptr');
const cryptr = new Cryptr('myTotallySecretKey', { encoding: 'base64', pbkdf2Iterations: 10000, saltLength: 10 });
const encryptedString = cryptr.encrypt('bacon');
const decryptedString = cryptr.decrypt(encryptedString);
console.log(encryptedString);
console.log(decryptedString);