phc-format

📝 PHC String Format implementation for Node.JS

MIT License

Downloads
1.3M
Stars
17
Committers
1

Motivation

The PHC String Format is an attempt to specify a common hash string format that's a restricted & well defined subset of the Modular Crypt Format. New hashes are strongly encouraged to adhere to the PHC specification, rather than the much looser Modular Crypt Format.

Install

npm install --save @phc/format

Usage

const phc = require('@phc/format');

const phcobj = {
  id: 'pbkdf2-sha256',
  params: {i: 6400},
  salt: Buffer.from('0ZrzXitFSGltTQnBWOsdAw', 'base64'),
  hash: Buffer.from('Y11AchqV4b0sUisdZd0Xr97KWoymNE0LNNrnEgY4H9M', 'base64'),
};

const phcstr = "$pbkdf2-sha256$i=6400$0ZrzXitFSGltTQnBWOsdAw$Y11AchqV4b0sUisdZd0Xr97KWoymNE0LNNrnEgY4H9M";

phc.serialize(phcobj);
// => phcstr

phc.deserialize(phcstr);
// => phcobj

You can also pass an optional version parameter.

const phc = require('@phc/format');

const phcobj = {
  id: 'argon2i',
  version: 19,
  params: {
    m: 120,
    t: 5000,
    p: 2
  },
  salt: Buffer.from('iHSDPHzUhPzK7rCcJgOFfg', 'base64'),
  hash: Buffer.from('J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g', 'base64'),
};

const phcstr = "$argon2i$v=19$m=120,t=5000,p=2$iHSDPHzUhPzK7rCcJgOFfg$J4moa2MM0/6uf3HbY2Tf5Fux8JIBTwIhmhxGRbsY14qhTltQt+Vw3b7tcJNEbk8ium8AQfZeD4tabCnNqfkD1g";

phc.serialize(phcobj);
// => phcstr

phc.deserialize(phcstr);
// => phcobj

API

TOC

serialize(opts) ⇒ string

Generates a PHC string using the data provided.

Kind: global function Returns: string - The hash string adhering to the PHC format.

Param Type Description
opts Object Object that holds the data needed to generate the PHC string.
opts.id string Symbolic name for the function.
[opts.version] Number The version of the function.
[opts.params] Object Parameters of the function.
[opts.salt] Buffer The salt as a binary buffer.
[opts.hash] Buffer The hash as a binary buffer.

deserialize(phcstr) ⇒ Object

Parses data from a PHC string.

Kind: global function Returns: Object - The object containing the data parsed from the PHC string.

Param Type Description
phcstr string A PHC string to parse.

Contributing

Contributions are REALLY welcome and if you find a security flaw in this code, PLEASE report it. Please check the contributing guidelines for more details. Thanks!

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the license file for details.