# cpass

> Simplified secured password two-ways encryption

Latest version **2.3.0** (published 2020-03-24) · MIT license · 0 weekly downloads

## Install

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

## Health

**Score 40/100 (D)** — status: abandoned.

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

Warnings: low downloads; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 2.3.0 |
| Published | 2020-03-24 |
| First published | 2016-09-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 20 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 12 |
| Author | Andrew Koltyakov |
| Maintainers | koltyakov, sergeisnitko |
| Keywords | password, encrypt, decrypt, dummy security |

## Links

- npm: https://www.npmjs.com/package/cpass
- Repository: https://github.com/koltyakov/cpass
- Homepage: https://github.com/koltyakov/cpass#readme
- Issues: https://github.com/koltyakov/cpass/issues
- npm.io page: https://npm.io/package/cpass

## Dependencies (1)

- [scmp](https://npm.io/package/scmp.md) ^2.1.0

## 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

- 2.3.0 (latest) — 2020-03-24
- 2.1.0-beta1 (beta) — 2019-04-30
- 2.2.0 — 2019-09-14
- 2.1.1 — 2019-05-25
- 2.1.0 — 2019-05-05
- 2.0.5 — 2018-08-23
- 2.0.4 — 2018-06-27
- 2.0.3 — 2017-10-28
- 2.0.2 — 2017-10-24
- 2.0.1 — 2017-08-13
- 2.0.0 — 2017-05-31
- 1.1.0 — 2017-05-17
- 1.0.2 — 2016-09-29
- 1.0.1 — 2016-09-04
- 1.0.0 — 2016-09-03

## README

# cpass - simplified secured password two-ways encryption

[![NPM](https://nodei.co/npm/cpass.png?mini=true&downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/cpass/)

[![npm version](https://badge.fury.io/js/cpass.svg)](https://badge.fury.io/js/cpass)
[![Downloads](https://img.shields.io/npm/dm/cpass.svg)](https://www.npmjs.com/package/cpass)
[![Build Status](https://dev.azure.com/koltyakov/SPNode/_apis/build/status/cpass?branchName=master)](https://dev.azure.com/koltyakov/SPNode/_build/latest?definitionId=5&branchName=master)

> Encrypts password to some sort of a 'secure string' to be stored in text configs to reduce risks of a silly leak.

Decripts a 'secure string' to plain password.

## Installation

```bash
npm install cpass --save-dev
```

or

```bash
yarn add cpass --dev
```

## Usage

### JavaScript

```javascript
const Cpass = require('cpass').Cpass;
const cpass = new Cpass();

const password = 'password';

let secured = cpass.encode(password);
// secured: "40bbb043608f54d....MhKghXTcaR2A//yNXg==" - is unique on different machines

let unsecured = cpass.decode(secured);
// unsecured: 'password'
```

### TypeScript

```javascript
import { Cpass } from 'cpass';
const cpass = new Cpass();

const password = 'password';

let secured = cpass.encode(password);
// secured: "40bbb043608f54d....MhKghXTcaR2A//yNXg==" - is unique on different machines

let unsecured = cpass.decode(secured);
// unsecured: 'password'
```

Decoding plain text will return it back:

```javascript
let plainText = 'plain (not encoded text)';
let decodedText = cpass.decode(plainText);
// decodedText: 'plain (not encoded text)'
// plainText === decodedText
```

### Encryption with master key

```javascript
import { Cpass } from 'cpass';
const cpass = new Cpass('MasterKey');
```

## Tests

### Local run

```bash
npm run test
```

### Run in Docker for specific Node.js version

```bash
# Build an image
docker build -f ./docker/Dockerfile.node8 -t cpass.node8 .
# Run tests
docker run cpass.node8
```

## Comments

This module is not for a real security purposes. Just for 'dummy hackers' secure and minifying risks of any password storage in a plain form.

Once encoded, the password secured form can be decoded only on the same machine, but the logic behind this is very straightforward.

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