Please note that this is the README for CONSUMERS, if you plan on contributing to this package, please take a look here.
A simple encryption package that allows you to encrypt and decrypt data.
If you plan on contributing to the package, please read the contributor readme.
-
Run
npm install @runninghill/simple-encryption. -
Import and use the exposed classes to encrypt/decrypt your data.
To begin using Simple Encryption, create an instance of the Encryptor class,
passing in the appropriate configuration (optional).
It is recommended that you configure the secret, this is your private key for the encryption.
To understand what you can configure, check out the API reference.
NB: In order to decrypt data, the configuration of the Encryptor instance must be the same as the one used to initially encrypt the data.
const { Encryptor } = require('@runninghill/simple-encryption')
const encryptor = new Encryptor({
saltRounds: 15,
secret: 'a9479590-299c-4812-9636-a333a97ca6cc'
})To encrypt data, simply call the encrypt method:
const user = {
name: 'John',
surname: 'Doe',
age: 31
}
const encryption = await encryptor.encrypt(user)To decrypt data, simply call the decrypt method:
const decryptedData = await encryptor.decrypt(encryption)
// decryptedData = {
// name: 'John',
// surname: 'Doe',
// age: 31
// }A class that allows you to encrypt and decrypt data. It also provides optional configuration.
| Name | Type | Description | Default |
|---|---|---|---|
| secret | string | the private key for the encryption | 'default' |
| saltRounds | number | the amount of rounds to generate the salt, used in the creation of the encryption key. The greater the amount of rounds the more resource intensive the encryption will be | true |
| saltPlacementStrategy | SaltPlacementStrategy | the strategy for placing the salt in the encryption | SaltPlacementStrategy.Before |
Encrypts the provided data using the configuration of the Encryptor instance.
The provided data can be primitive or an object.
Returns: a promise with a string, the encrypted data with the salt placed inside it.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| data | any | the data to be encrypted |
Decrypts the provided encryption using the configuration of the Encryptor instance.
Returns: a promise with the primitive data or object that was encrypted
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| encryption | string | the result from the encrypt method; the encrypted data with the salt placed inside it |
Determines how the salt is placed in the encrypted data
Values
| Name | Description |
|---|---|
| Before | the salt is placed before the encrypted data |
| After | the salt is placed after the encrypted data |
