npm install crypt.io{String} User supplied passphrase{String} Storage engine to use; local, session or cookies``javascript
var storage = cryptio
, inventory = [{
"SKU": "39-48949",
"Price": 618,
"Item": "Snowboard"
}, {
"SKU": "99-28128",
"Price": 78.99,
"Item": "Cleats"
}, {
"SKU": "83-38285",
"Price": 3.99,
"Item": "Hockey Puck"
}];
storage.set('inventory', inventory, function(err, results){
if (err) throw err;
console.log(results);
});
`
Retrieving data...
`javascript
var storage = cryptio;
storage.get('inventory', function(err, results){
if (err) throw err;
console.log(results);
});
`
`javascript`
var options = {
storage: 'session',
};
Or some depreciated cookies? This is the least tested option
`javascript`
var options = {
storage: 'cookies',
};
Here is an example of user input for the passphrase.
`javascript
var pass = window.prompt("Please enter password...", "a custom password");
var options = {
passphrase: pass
};
storage.set(options, 'inventory', inventory, function(err, results){
if (err) throw err;
console.log(results);
});
storage.get(options, 'inventory', function(err, results){
if (err) throw err;
console.log(results);
});
`
Saving data (please keep in mind that a static value for the salt is not recommended)
`javascript
var pass = window.prompt("Enter password to protect saved data", "");
var options = {
passphrase: sjcl.codec.base64.fromBits(sjcl.hash.sha256.hash(sjcl.misc.pbkdf2(pass, sjcl.random.randomWords(2), 100000, 512)))
};
storage.set(options, 'inventory', inventory, function(err, results){
if (err) throw err;
console.log(results);
});
storage.get(options, 'inventory', function(err, results){
if (err) throw err;
console.log(results);
});
`
`sh`
%> bower install crypt.io
`sh`
%> git clone --recursive https://github.com/jas-/crypt.io.git
`html``