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 🙏

© 2026 – Pkg Stats / Ryan Hefner

locka

v1.1.1

Published

Simple, elegant encryption ttoolkit. AES, XOR, password generation & CLI—zero dependencies.

Downloads

15

Readme

🔐 Locka

Locka is a sleek encryption toolkit and CLI for managing secrets, encrypting files, and generating secure passwords and tokens — with zero dependencies and maximum vibes.

Where the hell have you been loca 🐺.


⚡ Install

npm install -g locka       # CLI + importable API
# or
npx locka                  # use without install

🛠️ CLI Usage

🔐 Encrypt a message

locka encrypt "top secret" --password swordfish

🔓 Decrypt a message

locka decrypt "locka$1$...$..." --password swordfish

🔐 Encrypt a file

locka encrypt-file secret.txt --password swordfish

🔓 Decrypt a file

locka decrypt-file secret.txt.lck --password swordfish

Add --output to rename the output file, and --keep to preserve the original:

locka encrypt-file note.txt --password mango --output vault.lck --keep

🔑 Generate a password

locka gen password --length 24 --symbols

Options:

  • --symbols: include special characters
  • --no-uppercase: exclude A-Z
  • --no-numbers: exclude 0-9

🎟️ Generate a token

locka gen token --length 64 --base64

Options:

  • --base64: base64 output
  • --raw: return raw Buffer
  • default: hex string

📦 Programmatic API

import locka, {
  generatePassword,
  generateToken,
  parse
} from "locka";

// Encrypt and decrypt
const token = locka("top secret").aes("key").toString();
const plain = locka(token).decrypt().aes("key");

// Encode to base64 or hex
const hex = locka("data").hex().toString();
const b64 = locka("data").base64().toString();

// XOR reversible encoding
const encoded = locka("hidden").xor("key").raw();
const decoded = locka(encoded).xor("key").toString();

// Hash
const hash = locka("msg").hash("sha256").toString();

// Passwords & Tokens
const pwd = generatePassword(32, { symbols: true });
const token64 = generateToken(64, "base64");

// Parse tokens
const meta = parse(token);

🌐 Browser Support

Locka provides a secure AES-GCM encryptWeb() and decryptWeb() API for client-side encryption:

import { encryptWeb, decryptWeb } from "locka/web";

const token = await encryptWeb("text", "password");
const plain = await decryptWeb(token, "password");

✅ Testing

npm test

Runs a full test suite on AES, token parsing, password generation, hashing, and XOR logic with a summary report.


🤖 Requirements

  • Node.js 18+
  • Works in CLI, ESM projects, and the browser (via src/web.js)

🪪 License

This project is licensed under the MIT License. See LICENSE for details.