# secure-web-storage

> A simple wrapper for localStorage/sessionStorage that allows one to encrypt/decrypt the data being stored.

Latest version **1.0.2** (published 2017-02-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install secure-web-storage
pnpm add secure-web-storage
yarn add secure-web-storage
bun add secure-web-storage
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2017-02-09 |
| First published | 2017-02-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 27 |
| Author | Michaelangelo Jong |
| Maintainers | mike96angelo |
| Keywords | localStorage, sessionStorage, encrypt, decrypt, storage, web |

## Links

- npm: https://www.npmjs.com/package/secure-web-storage
- Repository: https://github.com/Mike96Angelo/Secure-Storage
- Homepage: https://github.com/Mike96Angelo/Secure-Storage#readme
- Issues: https://github.com/Mike96Angelo/Secure-Storage/issues
- npm.io page: https://npm.io/package/secure-web-storage

## Dependencies (1)

- [generate-js](https://npm.io/package/generate-js.md) ^3.1.2

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.0.2 (latest) — 2017-02-09
- 1.0.1 — 2017-02-09
- 1.0.0 — 2017-02-09

## README

# SecureStorage

[![GitHub release](https://img.shields.io/github/release/Mike96angelo/Secure-Storage.svg?maxAge=21600)](https://github.com/Mike96Angelo/Secure-Storage/releases)
[![npm version](https://img.shields.io/npm/v/secure-web-storage.svg?maxAge=21600)](https://www.npmjs.com/package/secure-web-storage)
[![npm downloads](https://img.shields.io/npm/dm/secure-web-storage.svg?maxAge=604800)](https://npm-stat.com/charts.html?package=secure-web-storage&from=2017-02-8)
[![npm downloads](https://img.shields.io/npm/dt/secure-web-storage.svg?maxAge=604800)](https://npm-stat.com/charts.html?package=secure-web-storage&from=2017-02-8)

A simple wrapper for localStorage/sessionStorage that allows one to encrypt/decrypt the data being stored.

### Install:
```
$ npm install secure-web-storage
```
# What SecureStorage Looks Like
<!-- * [Docs](docs/javascript-api.md) -->
<!-- * [JSFiddle](https://jsfiddle.net/fypyk2jp/4/) -->

### app.js:

```JavaScript
var CryptoJS = require("crypto-js");

var SECRET_KEY = 'my secret key';

var secureStorage = new SecureStorage(localStorage, {
    hash: function hash(key) {
        key = CryptoJS.SHA256(key, SECRET_KEY);

        return key.toString();
    },
    encrypt: function encrypt(data) {
        data = CryptoJS.AES.encrypt(data, SECRET_KEY);

        data = data.toString();

        return data;
    },
    decrypt: function decrypt(data) {
        data = CryptoJS.AES.decrypt(data, SECRET_KEY);

        data = data.toString(CryptoJS.enc.Utf8);

        return data;
    }
});

var data = {
    secret: 'data'
};

// there is no need to stringify/parse you objects before and after storing.

secureStorage.setItem('data', data);
// stores in localStorage like:
// key => value
// "ad36d572..." => "w1svi6n..."

var decryptedData = secureStorage.getItem('data');
// returns { secret: 'data' }

secureStorage.removeItem('data');
// removes the entry 'data'

secureStorage.key(id)
// returns the hashed version of the key you passed into setItem with the given id.

secureStorage.clear();
// clears all data in the underlining sessionStorage/localStorage.

secureStorage.length;
// the number of entries in the underlining sessionStorage/localStorage.

```

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