Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nour-karoui/encrypt-storage
NPM package that encrypts Local/Session Storage (available for TS & JS)
https://github.com/nour-karoui/encrypt-storage
angular client-side encryption javascript localstorage reactjs security sessionstorage storage typescript
Last synced: 26 days ago
JSON representation
NPM package that encrypts Local/Session Storage (available for TS & JS)
- Host: GitHub
- URL: https://github.com/nour-karoui/encrypt-storage
- Owner: nour-karoui
- License: mit
- Created: 2021-03-03T09:29:22.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-04-19T13:11:20.000Z (over 3 years ago)
- Last Synced: 2024-10-01T02:35:30.727Z (about 1 month ago)
- Topics: angular, client-side, encryption, javascript, localstorage, reactjs, security, sessionstorage, storage, typescript
- Language: TypeScript
- Homepage:
- Size: 6.14 MB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Encrypt your client storage (available for TS & JS)
Welcome to Encrypt Storage 👋
* **Encrypt your storage using AES symmetric encryption algorithm**
* **JS and TS**
### 🏠 [Homepage](https://github.com/nour-karoui/encrypt-storage)
## Install
```sh
npm i storage-encryption
```## How it works
* **The constructor of EncryptStorage takes two arguments:**
* **secret**(required): the secret key (a string) that we'll use in the encryption
* **storage**(optional): localStorage / sessionStorage.
storage is localStorage by default.
* **Methods provided by encryptStorage:**
* **encrypt**(storage_key: string, data: any): void
* **decrypt**(storage_key: string): any
* **remove**(storage_key: string): void
## Encrypt Local/Session Storage (For Typescript)
```ts
import {EncryptStorage} from 'storage-encryption';// the constructor takes the secret key as a first parameter and an optional
// second parameter as the storage type
// if none is provided it'll be localStorage by default
const encryptStorage = new EncryptStorage(SECRET_KEY, 'sessionStorage');
/*** for a string ***/
encryptStorage.encrypt('storage_key', 'Hello world');
const stringValue = encryptStorage.decrypt('storage_key');/*** for an object ***/
encryptStorage.encrypt('storage_key', {'name': 'Hello world'});
const objectValue = encryptStorage.decrypt('storage_key');/*** for a number ***/
encryptStorage.encrypt('storage_key', 1);
const numberValue = encryptStorage.decrypt('storage_key');/*** for an array ***/
encryptStorage.encrypt('storage_key', [1, 2, 3]);
const arrayValue = encryptStorage.decrypt('storage_key');encryptStorage.remove('storage_key');
```## Encrypt Local/Session Storage (For Javascript)
```js
const { EncryptStorage } = require('storage-encryption')const encryptStorage = new EncryptStorage(SECRET_KEY, 'localStorage');
/*** for a string ***/
encryptStorage.encrypt('storage_key', 'Hello world');
const stringValue = encryptStorage.decrypt('storage_key');/*** for an object ***/
encryptStorage.encrypt('storage_key', {'name': 'Hello world'});
const objectValue = encryptStorage.decrypt('storage_key');/*** for a number ***/
encryptStorage.encrypt('storage_key', 1);
const numberValue = encryptStorage.decrypt('storage_key');/*** for an array ***/
encryptStorage.encrypt('storage_key', [1, 2, 3]);
const arrayValue = encryptStorage.decrypt('storage_key');encryptStorage.remove('storage_key');
```## A BETTER WAY TO DO IT
* **Instantiate the encryptStorage object in a shared folder and export it**
* **So you won't have to instantiate it in each file**````ts
import EncryptStorage from 'storage-encryption';export const encryptSessionStorage = EncryptStorage(SECRET_KEY, 'sessionStorage');
export const encryptLocalStorage = EncryptStorage(SECRET_KEY);````
## Author👤 **Nour**
* Github: [@nour-karoui](https://github.com/nour-karoui)
* LinkedIn: [@nourkaroui](https://www.linkedin.com/in/nourkaroui/)## 🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/nour-karoui/encrypt-storage/issues). You can also take a look at the [contributing guide](https://github.com/nour-karoui/encrypt-storage/blob/master/CONTRIBUTING.md).## Show your support
Give a [STAR](https://github.com/nour-karoui/encrypt-storage) if this project helped you!
## 📝 License
* Copyright © 2021 [Nour](https://github.com/nour-karoui).
* This project is [MIT](https://github.com/nour-karoui/encrypt-storage/blob/master/LICENSE) licensed.***
_This README was generated with by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_