Universal TypeScript library for AES-256-GCM client-side encryption — works seamlessly in Browsers and Node.js.
Compatible with React, Vue, and Angular.
Ideal for securely storing sensitive client-side data.
- 🔐 AES-256-GCM encryption for strong, modern security
- 🌐 Works in both Browser and Node.js environments
- ⚙️ Framework-agnostic — use with React, Vue, Angular, or Vanilla JS
- ⏳ Auto-clear feature to remove data after a defined duration
- 🧩 Simple API methods:
initializeKey,encrypt,decrypt
npm install secure-client-storeconst store = new SecureStore();
await store.initializeKey();
const encrypted = await store.encrypt("secret");
const decrypted = await store.decrypt(encrypted);// Must be a 256-bit (32-byte) base64 string
const myKey = "aW5zZWN1cmVfMzJfYnl0ZV9iYXNlNjRfZGF0YQ==";
const store = new SecureStore({ userKey: myKey });
await store.initializeKey();
const encrypted = await store.encrypt("secret");
const decrypted = await store.decrypt(encrypted);import React, { useEffect, useState } from "react";
import { SecureStore } from "secure-client-store";
const store = new SecureStore();
export default function App() {
const [crypted, setCrypted] = useState<string | null>(null);
useEffect(() => {
(async () => {
await store.initializeKey();
const c = await store.encrypt("secret from React");
setCrypted(c);
})();
store.autoClearData(1000 * 60 * 60); // 1 hour
}, []);
return <div>{crypted}</div>;
}import { ref, onMounted } from "vue";
import { SecureStore } from "secure-client-store";
const store = new SecureStore();
export default {
setup() {
const data = ref("");
onMounted(async () => {
await store.initializeKey();
data.value = await store.encrypt("vue secret");
});
return { data };
}
};import { Injectable } from "@angular/core";
import { SecureStore } from "secure-client-store";
@Injectable({ providedIn: "root" })
export class SecureService {
private store = new SecureStore();
async init() {
await this.store.initializeKey();
}
encrypt(text: string) {
return this.store.encrypt(text);
}
decrypt(ct: string) {
return this.store.decrypt(ct);
}
}If you find secure-client-store useful, please consider supporting my work 🙌
🌍 Payoneer: Send via Payoneer
Payoneer Customer ID: 56133568
Bank Details:
Bank Name: Citibank
Bank Address: 111 Wall Street, New York, NY 10043, USA
Routing (ABA): 031100209
SWIFT Code: CITIUS33
Account Number: 70580680002068111
Account Type: CHECKING
Beneficiary Name: MUHAMMAD SAAD NASIR