secure-web-storage

1.0.2 • Public • Published

SecureStorage

GitHub release npm version npm downloads npm downloads

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

app.js:

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.
 

Package Sidebar

Install

npm i secure-web-storage

Weekly Downloads

5,559

Version

1.0.2

License

MIT

Last publish

Collaborators

  • mike96angelo