Thursday, August 21, 2014

Working With File-Encryptor Node.js Module - Encrypt and Decrypt your Files OpenSSL

I love Encryption/Decryption a Lot in Javascript ! And I have Already written article on JavaScript Crypto.JS Library and got many Responses/Doubts.And So recently I have Been working on a Small Node.JS project for File Management System in Cloud , I have Been using this File-Encryptor module for my Use.And i didn't see Any Successful Blog post guiding for this Encryption/Decryption File Module in Node.js.

Working With File-Encryptor Node.js Module - Encrypt and Decrypt your Files OpenSSL
Reference :   Download Demo


>npm install file-encryptor 


Procedure :

Require File encryptor and path for our Application.

 var encryptor = require('file-encryptor');
 var path = require("path");

Encrypting File : 

Encrypting the File is easy,Just invoking the function lets you to Encrypt as DAT file in directory.Using the FileSystem Module we could normalize our directory 

var key = 'My KEY For Encryption';
var input = __dirname+'/../private/file.txt';
var output = __dirname+'/../private/filename.dat';
encryptor.encryptFile(input, output, key,options, function(err) {
                if (err)
                  throw err;
         console.log("Successfully Encrypted!");

Decrypting File :

var key = 'My KEY For Encryption';
var input = __dirname+'/../private/filename.dat';
var output = __dirname+'/../private/file.txt';
encryptor.decryptFile(input, output, key,options, function(err) {
                if (err)
                  throw err;
         console.log("Successfully Decrypted!");

Options : 

Before trying Just Install OpenSSL in your System to and Make it Available via Commandline [Set Path]
Now Try openssl list it in your command Prompt and verify your Preferred Algorithm is default this module does aes192 if your not passing option as argument in function.

var options = { algorithm: 'Your Openssl Encryption Algorithm' };

var options = { algorithm : 'aes256' };

Basic Application :


  "name": "node-encryption",
  "main": "server.js",
  "version" : "0.0.1",
  "dependencies" : {
    "express" : "~3.4.4",
    "file-encyptor" : "*",

Try out this simple node application by creating private directory in your project folder and create filename.txt and try encryption first and then followed by decryption.

var http = require("http");
var express = require("express");
var app = express();
var encryptor = require('file-encryptor');
var path = require("path");


   var key = 'My Secret Key';
   var input = path.resolve(__dirname+'/../private/filename.txt');
   var output = path.resolve(__dirname+'/../private/tmp/file.dat');
    var option = { algorithm : 'aes256' };
   encryptor.encryptFile(input, output, key,options, function(err) {
     ;   });

   var key = 'My Secret Key';
   var output = path.resolve(__dirname+'/../private/filename.txt');
   var input = path.resolve(__dirname+'/../private/tmp/file.dat');
    var option = { algorithm : 'aes256' };
   encryptor.decryptFile(input, output, key,options, function(err) {

 });  //end of decryptor function 


console.log('Application Started now ');

For dynamic advanced application you can temporarily create filename unique manner and assign to create encrypted file in your can make use of tmp npm module.
try out with different algorithm for encryption/Decryption.I have used aes128/aes256/aes192 for my project.I am leaving in your hand for filename generations and applying it.

If you can find any errors/bugs/issues/suggections in my Demo/Post just comment below!lets resolve it.
For Errors/Comments and more details lets discuss below or mail me or connect with me in Facebook/Twitter.Share is care.


Algorithm Freak, Coder, Web And Android Developer, love to develop Apps for Local Business in my Freetime. For Queries,Quotes Drop me a Mail to


Post a Comment

feel free to post your comments! Don't Spam here! Registered & Protected  Z6HO-DGFO-S2CO-JRZGCopyrights Protected (C)2013-2015 i-visionblog ~ s.shivasurya.

Designed and Maintained by S.Shivasurya | S.Shivasurya