Back to ProjectsSecurity

SecretVault

Secure API for sharing sensitive data via one-time-use links with AES-256-CBC encryption.

Tech Stack

Node.jsExpressRedisCrypto

Overview

SecretVault lets you share passwords, API keys, or any sensitive text through a self-destructing link. The secret is encrypted with AES-256-CBC before being stored in Redis with a TTL. Once the link is accessed, the secret is deleted immediately — it can never be read twice. This eliminates the risk of sensitive data lingering in chat logs or emails.

Key Highlights

  • AES-256-CBC encryption at rest
  • One-time-use — deleted on first read
  • Redis TTL for automatic expiry
  • Zero-knowledge design — server never logs plaintext

How I Built It

Built with Node.js and Express. Secrets are encrypted using Node's built-in crypto module (AES-256-CBC) before storage. Redis handles ephemeral storage with automatic TTL expiry. The API generates a unique token per secret; on retrieval, it decrypts and immediately deletes the Redis key. A minimal React frontend provides the share/reveal UI.

Future Vision

Add passphrase protection, view-count limits, burn-on-read confirmation UI, and an audit log for enterprise use.

Links