Skip to content

medhajjej11/js-mcf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modular Crypt Format

NPM Version

This modules reads (deserialize) and writes (serialize) password fields in databases following the Modular Crypt Format (MCF).

The modular crypt format (MCF) is a standard for encoding password hash strings in order to defend a database against attacks (dictionary attacks, pre-computed rainbow table attacks, etc.).

The Modular Crypt Format is described in detail in http://pythonhosted.org/passlib/modular_crypt_format.html

Format

A password field in the Modular Crypt Format is of the following form:

$identifier$cost$salt$derived_key

Install

npm install mcf

API

deserialize(mcf_field)
serialize(identifier, cost, salt, derived_key)

Usage

Reading the format from the database:

var mcf = require('mcf');

var mcf_field = user.get('password');
try {
    var obj = mcf.deserialize(mcf_field);
    var identifier = obj.identifier;
    var cost = obj.cost;
    var salt = obj.salt;
    var derived_key = obj.derived_key;
} catch(err) {
    if (err instanceof mcf.McfError) {
        console.log("Format error in the database", err);
    } else {
        console.log("Unexpected fail");
    }
}

Creating the format to write in the database:

var mcf = require('mcf');

var mcf_field = mcf.serialize('pbkdf2', cost, salt, derived_key);

Contributions

Pull Requests and contributions in general are welcome as long as they follow the Node aesthetic.

About

Modular Crypt Format

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%