# crypto-xor

> Simple symmetric XOR encryption library for Browser and Node.

Latest version **3.1.0** (published 2023-03-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install crypto-xor
pnpm add crypto-xor
yarn add crypto-xor
bun add crypto-xor
```

## Health

**Score 30/100 (F)** — status: abandoned.

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

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.0 |
| Published | 2023-03-20 |
| First published | 2016-05-24 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 9.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Thomas Champagne |
| Maintainers | thomaschampagne |

## Links

- npm: https://www.npmjs.com/package/crypto-xor
- Repository: https://github.com/thomaschampagne/crypto-xor
- Homepage: https://github.com/thomaschampagne/crypto-xor#readme
- Issues: https://github.com/thomaschampagne/crypto-xor/issues
- npm.io page: https://npm.io/package/crypto-xor

## Recent versions

- 3.1.0 (latest) — 2023-03-20
- 3.0.0 — 2023-02-28
- 2.1.0 — 2021-05-18
- 2.0.0 — 2021-05-18
- 1.1.0 — 2016-05-24

## README

# crypto-xor

Simple symmetric XOR encryption library for Browser and Node.

No dependencies required

<!-- toc -->

- [Install](#install)
- [Usage](#usage)
- [Development](#development)
  - [Setup](#setup)
  - [Build library](#build-library)
  - [Run tests](#run-tests)
  - [Run linting check](#run-linting-check)
  - [Generate library documentation](#generate-library-documentation)
  - [Update library dependencies](#update-library-dependencies)
  - [Integrate library](#integrate-library)
- [Appendix](#appendix)
  - [Update the table of content of this readme](#update-the-table-of-content-of-this-readme)

<!-- tocstop -->

## Install

```bash
npm install crypto-xor
```

## Usage

Sample

```typescript
import { CryptoXor } from 'crypto-xor';

const symmetricKey = '5_Gk>V!q9umG-dx4GK*V;j!_';

const plainText = 'I have a secret for you !';

console.log('Plain Text: ' + plainText);

const cypherText = CryptoXor.encrypt(plainText, symmetricKey);

console.log('Encoded: ' + cypherText);

const decodedCypher = CryptoXor.decrypt(cypherText, symmetricKey);

console.log('Decoded: ' + decodedCypher);
```

Output

```
Plain Text: I have a secret for you !
Encoded: 7c7f2f0a48330110190608245f010c14212458764205547f14
Decoded: I have a secret for you !
```
## Development

### Setup

- Install the latest version of [pnpm](https://pnpm.io/) globally 

```bash
npm uninstall -g pnpm
npm install -g pnpm@latest
```

_Note: If you never installed `pnpm` before, you may need to reload your shell to access `pnpm` CLI._

- Then install the lib dependencies

```bash
pnpm install
```

### Build library

```bash
pnpm run build
```

### Run tests

```bash
pnpm run test
```

### Run linting check

```bash
pnpm run lint
```

Fix errors with:

```bash
pnpm run lint:fix
```

### Generate library documentation

```bash
pnpm run docs
```

Documentation is generated using [TypeDoc](https://typedoc.org/).

### Update library dependencies

```bash
pnpm run upgrade:libs
```

### Integrate library

Run common tasks all-in-once:

- Dependencies install
- TypeScript check
- Lint fixes
- Tests
- Build
- Documentation


```bash
pnpm run integrate
```

## Appendix

### Update the table of content of this readme

```bash
pnpm run readme:toc
```

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