mongoose-encrypt-plugin
v1.0.6
Published
encrypt data before data document store in the database
Downloads
96
Maintainers
Readme
Mongoose Encrypt Plugin
This plugin is build support encrypt field when you insert and update data to database.
Install
First install Node.js and Mongoose. Then:
npm install mongoose-encrypt-plugin
Quick Guide
Basic Usage
const mongoose = require("mongoose");
const mongoosePlugins = require('mongoose-encrypt-plugin');.
const TestSchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
},
phone: {
type: String,
required: false,
default: ''
},
email: {
type: String,
required: true,
unique: true,
},
address: {
type: String,
required: false,
default: ''
}
},
{
timestamps: true,
}
);
TestSchema.plugin(plugin.MongooseEncryptPlugin, { fields: ['email', 'phone', 'address'], salt: 'vZYt@CAkuMKB9Z#SHZF4d7puRt!MhCiK' });
Option config
These are the available config for plugin.
{
// `fields` is array list field need to encrypt
fields: [],
// `salt` is secretKey need to encrypt data. It need length greater 32 character.
salt: 'vZYt@CAkuMKB9Z#SHZF4d7puRt!MhCiK',
// `algorithm` accept between `aes-256-ctr` and `aes-256-cbc`
algorithm?: 'aes-256-ctr' || 'aes-256-cbc'
// `hashField` is field name schema store data encrypt with `sha256` support for search equal value from mongoose query
// You can change it if you want.
hashField?: 'hashField'
// `ivField` is field name schema store iv key when data be encrypt, support for descrypt document when document return from mongoose query
// You can change it if you want.
ivField?: 'ivField'
// `hideIV` is field verify when document return ignore field `hashField` and `ivField`
// Default value is true
hideIV?: true
}