# cryptr

> a simple encrypt and decrypt module for node.js

Latest version **6.4.0** (published 2025-09-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install cryptr
pnpm add cryptr
yarn add cryptr
bun add cryptr
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 6.4.0 |
| Published | 2025-09-20 |
| First published | 2013-02-23 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 20.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 271 |
| Author | Maurice Butler |
| Maintainers | mauricebutler |
| Keywords | cryptr, crypter, encrypt, decrypt, encryption, decryption, crypto, cipher, aes-256, aes256, aes-256-ctr, aes-256-gcm, hashr |

## Links

- npm: https://www.npmjs.com/package/cryptr
- Repository: https://github.com/MauriceButler/cryptr
- Issues: https://github.com/MauriceButler/cryptr/issues
- npm.io page: https://npm.io/package/cryptr

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 6.4.0 (latest) — 2025-09-20
- 6.3.0 — 2023-09-04
- 6.2.0 — 2023-03-06
- 6.1.0 — 2023-01-03
- 6.0.3 — 2022-04-18
- 6.0.2 — 2020-04-02
- 6.0.1 — 2019-11-07
- 6.0.0 — 2019-10-31
- 4.0.2 — 2018-11-22
- 5.0.0 — 2018-11-22
- 4.0.1 — 2018-11-13
- 4.0.0 — 2018-06-11
- 3.0.0 — 2018-02-04
- 2.0.0 — 2016-03-24
- 1.0.0 — 2014-05-10
- … 1 more at https://npm.io/package/cryptr/versions

## README

# cryptr

cryptr is a simple `aes-256-gcm` encrypt and decrypt module for node.js

It is for doing simple encryption of values UTF-8 strings that need to be decrypted at a later time.

If you require anything more than that you probably want to use something more advanced or [crypto](https://nodejs.org/api/crypto.html) directly.

The Cryptr constructor takes 1 required argument, and an optional options object.

`Cryptr(secret[, options])`

-   secret: `<string>`
-   options: `<Object>`
    -   encoding: `<string>` Defaults to 'hex' (see [Node.js Buffer documentation] for valid options)
    -   pbkdf2Iterations: `<number>` Defaults to 100000
    -   saltLength: `<number>` Defaults to 64

The `salt` and `iv` are randomly generated and prepended to the result.

**DO NOT USE THIS MODULE FOR ENCRYPTING PASSWORDS!**

Passwords should be a one way hash. Use [bcrypt](https://npmjs.org/package/bcrypt) for that.

## Install

`npm install cryptr`

## Usage

```javascript
const Cryptr = require('cryptr');
const cryptr = new Cryptr('myTotallySecretKey');

const encryptedString = cryptr.encrypt('bacon');
const decryptedString = cryptr.decrypt(encryptedString);

console.log(encryptedString); // 2a3260f5ac4754b8ee3021ad413ddbc11f04138d01fe0c5889a0dd7b4a97e342a4f43bb43f3c83033626a76f7ace2479705ec7579e4c151f2e2196455be09b29bfc9055f82cdc92a1fe735825af1f75cfb9c94ad765c06a8abe9668fca5c42d45a7ec233f0
console.log(decryptedString); // bacon
```

#### With Options

```javascript
const Cryptr = require('cryptr');
const cryptr = new Cryptr('myTotallySecretKey', { encoding: 'base64', pbkdf2Iterations: 10000, saltLength: 10 });

const encryptedString = cryptr.encrypt('bacon');
const decryptedString = cryptr.decrypt(encryptedString);

console.log(encryptedString); // CPbKO/FFLQ8lVKxV+jYJcLcpTU0ZvW3D+JVfUecmJmLYY10UxYEa/wf8PWDQqhw=
console.log(decryptedString); // bacon
```

[Node.js Buffer documentation]: https://nodejs.org/api/buffer.html#buffers-and-character-encodings

---
_Source: https://npm.io/package/cryptr · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
