Have ideas to improve npm?Join in the discussion! »

    @phc/format

    1.0.0 • Public • Published

    phc-format

    Latest version on npm Downloads on npm Project license
    Lint status Test macOS status Test Ubuntu status Test Windows status
    Codecov Coverage report Known Vulnerabilities Dependency Status
    XO Code Style used AVA Test Runner used Istanbul Test Coverage used NI Scaffolding System used NP Release System used

    📝 PHC string format serializer/deserializer
    Coded with ❤️ by Simone Primarosa.

    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.

    deserialize(phcstr)Object

    Parses data from a PHC string.

    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.

    Install

    npm i @phc/format

    DownloadsWeekly Downloads

    47,660

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    15.8 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar