New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

js-crypto-pbkdf

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-crypto-pbkdf

Universal Module for Password-based Key Derivation Function (PBKDF) in JavaScript

  • 1.0.7
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
11K
increased by12.68%
Maintainers
1
Weekly downloads
 
Created
Source

Universal Module for Password-based Key Derivation Function (PBKDF) in JavaScript

npm version License: MIT

WARNING: At this time this solution should be considered suitable for research and experimentation, further code and security review is needed before utilization in a production application.

Introduction and Overview

This library is designed to 'universally' provide PBKDF (Password-based Key Derivation Function) functions, i.e., it works both on most modern browsers and on Node.js just by importing from NPM/source code. This key utility library provides both PBKDF1 and PBKDF2 specified in PKCS#5 v2.1 (RFC8018).

Installation

At your project directory, do either one of the following.

  • From npm/yarn:
    $ npm install --save js-crypto-pbkdf // npm
    $ yarn add js-crypto-pbkdf // yarn
    
  • From GitHub:
    $ git clone https://github.com/junkurihara/jscu.git
    $ cd js-crypto-utils/packages/js-crypto-pbkdf
    & yarn build
    

Then you should import the package as follows.

import pbkdf from 'js-crypto-pbkdf'; // for npm
import pbkdf from 'path/to/js-crypto-pbkdf/dist/index.js'; // for github

The bundled file is also given as js-crypto-pbkdf/dist/jscpbkdf.bundle.js for a use case where the module is imported as a window.jscpbkdf object via script tags.

Usage

PBKDF2

See RFC8018 Section 5.2 for detailed specification.

const password = 'password'; // string or Uint8Array
const salt = ...; // Uint8Array
const iterationCount = 2048;
const derivedKeyLen = 32;
const hash = 'SHA-256'; // 'SHA-384', 'SHA-512', 'SHA-1', 'MD5', 'SHA3-512', 'SHA3-384', 'SHA3-256', or 'SHA3-224'

pbkdf.pbkdf2(
  password,
  salt,
  iterationCount,
  derivedKeyLen,
  hash
).then( (key) => {
  // now you get the derived key of intended length
});

PBKDF1

See RFC8018 Section 5.1 for detailed specification.

const password = 'password'; // string or Uint8Array
const salt = ...; // Uint8Array
const iterationCount = 2048;
const derivedKeyLen = 32;
const hash = 'SHA-256'; // 'SHA-384', 'SHA-512', 'SHA-1', 'MD5', 'SHA3-512', 'SHA3-384', 'SHA3-256', or 'SHA3-224'

pbkdf.pbkdf1(
  password,
  salt,
  iterationCount,
  derivedKeyLen,
  hash
).then( (key) => {
  // now you get the derived key of intended length
});

License

Licensed under the MIT license, see LICENSE file.

Keywords

FAQs

Package last updated on 27 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc