https://github.com/npm-packages-collection/safe-encrypted-storage
An easy-to-use, encrypted web storage utility for securely storing and managing sensitive data in localStorage and sessionStorage.
https://github.com/npm-packages-collection/safe-encrypted-storage
aes-gcm crypto indexeddb localstorage safe-encrypted-storage secure-storage sessionstorage
Last synced: 4 months ago
JSON representation
An easy-to-use, encrypted web storage utility for securely storing and managing sensitive data in localStorage and sessionStorage.
- Host: GitHub
- URL: https://github.com/npm-packages-collection/safe-encrypted-storage
- Owner: npm-packages-collection
- Created: 2024-09-28T11:37:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-29T02:16:51.000Z (over 1 year ago)
- Last Synced: 2025-10-07T11:45:52.280Z (8 months ago)
- Topics: aes-gcm, crypto, indexeddb, localstorage, safe-encrypted-storage, secure-storage, sessionstorage
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# safe-encrypted-storage
`safe-encrypted-storage` is an easy-to-use, encrypted web storage utility for JavaScript. It supports both `localStorage` and `sessionStorage`, ensuring your data is securely stored by encrypting keys and values. The package utilizes AES-GCM encryption and IndexedDB to keep sensitive data safe and manageable across web sessions.
## Table of Contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Usage](#usage)
- [API](#api)
- [Development](#development)
- [Testing](#testing)
- [Contributing](#contributing)
- [License](#license)
## Introduction
`safe-encrypted-storage` simplifies the process of storing encrypted data in either `localStorage` or `sessionStorage`. It uses IndexedDB to securely store encryption keys and ensures that all data stored is both encrypted and decrypted seamlessly in the background. This package is perfect for applications requiring sensitive data storage, adding an extra layer of security without the need for complex encryption management.
## Installation
You can install the package via npm:
```bash
npm install safe-encrypted-storage
```
## Usage
Here's an example of how to use `safe-encrypted-storage`:
```javascript
import { SafeStorage } from 'safe-encrypted-storage';
(async () => {
const mechanism = 'localStorage'; // Or 'sessionStorage'
const safeStorage = SafeStorage.init(mechanism);
// Storing encrypted data
await safeStorage.setItem('username', 'john_doe');
// Retrieving decrypted data
const username = await safeStorage.getItem('username');
console.log(username); // Outputs: john_doe
// Removing data
await safeStorage.removeItem('username');
// Clearing all storage
safeStorage.clear();
})();
```
## API
### `init(type: string)`
Initializes the `SafeStorage` class with the given storage type. The type can be either `localStorage` or `sessionStorage`.
### `setItem(key: string, value: any): Promise`
Encrypts and stores the specified value under the provided key.
### `getItem(key: string): Promise`
Retrieves and decrypts the value associated with the specified key.
### `removeItem(key: string): Promise`
Removes the value associated with the specified key from storage.
### `clear()`
Clears all data from the selected storage mechanism.
## Development
To contribute to `safe-encrypted-storage`, clone the repository and start adding new features or fixing issues.
### Scripts
- **Install dependencies:**
```bash
npm install
```
- **Run the project in development mode:**
```bash
npm run dev
```
## Testing
Run the test cases using:
```bash
npm test
```
## Contributing
Contributions are welcome! If you have suggestions, bug reports, or improvements, feel free to open an issue or submit a pull request on GitHub.
## License
This project is licensed under the MIT License.