npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

encrypt-with-password

v1.0.0

Published

Securely encrypt text with a password in JavaScript.

Downloads

1,612

Readme

encrypt-with-password simplifies encrypting text and data securely with leading security standards. It uses PBKDF2 for key derivation and AES 256-bit for encryption and decryption.

Download

encrypt-with-password can be downloaded from NPM with the command:

npm install encrypt-with-password

or:

yarn add encrypt-with-password

Encrypting and Decrypting Text with a Password

encryptpwd.encrypt(text, password) for encrypting text with a password.

encryptpwd.decrypt(encryptedValue, password) for decrypting text with the password used when encrypting.

Example:

const encryptpwd = require('encrypt-with-password');

const text = 'Hello, World!';
const password = 'examplepassword';

const encrypted = encryptpwd.encrypt(text, password); // ---> this is the encrypted (output) value

// example encrypted value: 'e68e7ccd9e908665818a49f111c342ed:c9b83ff7624bb3b26af8cc853d61cd2f7959cecc4308383c39a0924e90637889'

const decrypted = encryptpwd.decrypt(encrypted, password) // ---> this decrypts the encrypted value and yields the original text

NOTE: the encrypted output value of given text and password will likely change when encrypting multiple times with the same text and password. This is because of the nature of AES, block ciphers, and randomized IVs (initialization vectors).

Encrypting and Decrypting JavaScript Objects (JSON) with a Password

encryptpwd.encryptJSON(jsObject, password) for encrypting JavaScript objects and variables with a password.

encryptpwd.decryptJSON(encryptedValue, password) for decrypting JavaScript objects with the password used when encrypting.

Example:

const encryptpwd = require('encrypt-with-password');

const jsObject = {
  aString: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.',
  aNumber: 5,
  anArray: [1, 2, 3, 4, 5],
  anObj: {
    aKey: 'a value'
  }
};
const password = 'examplepassword2';

const encrypted = encryptpwd.encryptJSON(jsObject, password); // ---> this is the encrypted value

// example encrypted value: 'f953284ffe3e44a7b9de8487b50c3449:123378b5c481399488f520ebb774b076b85a12bc0f9a67cf8faf359eb4f804fc0594bc42374a20b4216b1312d7a408cf94517e19dfcada5513c49f6d13d26c982c562904306900a3f777b9c19b9c002e12dd216984f68566684f9f0259a45e007a0cecb2325333faafb18ed0e751933d8b1195b02b2adda29269cf1c6fa6fff73f0bac4abcf58b391521e0382c06a5f01f31c1243d827f8c7076f81d7f530259a3ae459e524bee80230672f153ab6a4e'

const decrypted = encryptpwd.decryptJSON(encrypted, password) // ---> this decrypts the encrypted value and yields the original object

NOTE: encrypted objects are stored in JSON. This means that some richer objects like Date and custom classes may not be supported as seemlessly as normal numbers and strings.

Tests

Run npm run test to run tests. To see test coverage along with running tests, run npm run test-with-coverage.

Third Party Software Used

  • AES-JS for AES and encryption
  • PBKDF2 for PBKDF2 and key derivation
  • Mocha and Chai for testing and assertion
  • NYC for test coverage

File Structure

  • test/ — includes tests and test directories that are run with npm run test.
  • index.js — the main code for the package.
  • img — any images used in the README or the package.

License and Credits

encrypt-with-password was built solely by web developer and student Fred Adams.

The code is completely OSS and is MIT Licensed. See LICENSE.txt for details.