
Шифрованная паста с нулевым разглашением. Ваши данные шифруются до того, как покинут ваш браузер.
Ваши данные шифруются до того, как покинут ваш браузер. Мы не можем их прочитать. Никто не может.
Традиционные пасты хранят ваши данные в открытом виде. Администраторы сервера, хакеры или любой, имеющий доступ к базе данных, может прочитать всё, чем вы делитесь.
CloakBin отличается.
┌─────────────────────────────────────────────────────────────────┐
│ ZERO-KNOWLEDGE FLOW │
├─────────────────────────────────────────────────────────────────┤
│ │
│ YOUR BROWSER SERVER DATABASE │
│ ──────────── ────── ──────── │
│ │
│ "secret msg" │
│ │ │
│ ▼ │
│ ┌─────────┐ │
│ │ ENCRYPT │ AES-256-GCM │
│ │ locally │ (browser) │
│ └────┬────┘ │
│ │ │
│ ▼ │
│ "a3f8b2c1..." ───────► "a3f8b2c1..." ───► "a3f8b2c1..." │
│ (ciphertext) (ciphertext) (ciphertext) │
│ │
│ KEY stays in URL fragment (#) │
│ example.com/p/abc#KEY ◄── never sent to server │
│ │
└─────────────────────────────────────────────────────────────────┘
Ключ шифрования содержится во фрагменте URL (#), который браузеры никогда не отправляют на серверы. Даже если наша база данных будет скомпрометирована, злоумышленники получат только бессмысленный шифротекст.
| Компонент | Что видит |
|---|---|
| Ваш браузер | ✅ Открытый текст (вы его контролируете) |
| Сеть/Провайдер |
Криптографические детали:
crypto.getRandomValues)Не верьте на слово — гарантию можно проверить в вашем браузере:
POST-запрос, который сохраняет пасту, и посмотрите его тело запроса. Вы увидите только шифротекст и соль — никогда ваш открытый текст и никогда ключ шифрования.# (фрагмент URL). По веб-стандартам браузеры никогда не отправляют фрагмент на сервер — он остаётся на стороне клиента.#фрагмента.Поскольку ключ существует только во фрагменте и в браузере получателя, сервер (и его база данных, и любой в сети) видит только зашифрованные блоки. Нет никакого серверного пути кода, который может прочитать ваше содержимое — даже по судебному запросу можно будет передать только шифротекст.
# Clone
git clone https://github.com/Ishannaik/CloakBin.git
cd CloakBin
# Install
pnpm install
# Configure
cp .env.example .env
# Edit .env with your MongoDB URI
# Run
pnpm dev
Откройте http://localhost:5173
MONGODB_URI=mongodb://localhost:27017/cloakbin
ADMIN_USER=admin
ADMIN_PASS=your-secure-password
src/
├── lib/
│ ├── components/ # UI components
│ ├── db/ # Database adapters
│ └── crypto.ts # Encryption (AES-256-GCM, PBKDF2)
├── routes/
│ ├── +page.svelte # Create paste
│ ├── p/[id]/ # View paste
│ ├── api/ # REST endpoints
│ └── admin/ # Admin dashboard
└── app.html
CloakBin полностью с открытым исходным кодом. Разверните собственный экземпляр:
Приветствуются пул-реквесты! Пожалуйста:
GNU Affero General Public License v3.0 (AGPL-3.0) — см. LICENSE
Если вы запускаете модифицированную версию CloakBin в качестве сетевого сервиса, AGPL §13 требует предоставить модифицированный исходный код вашим пользователям.
Ваши секреты заслуживают настоящей конфиденциальности.
Создано Ishan Naik
| 🔒 Только зашифрованный шифротекст |
| Сервер CloakBin | 🔒 Только зашифрованный шифротекст |
| База данных | 🔒 Только зашифрованный шифротекст |
| Получатель URL | ✅ Открытый текст (у них есть ключ) |
| Слой | Технология |
|---|
| Фреймворк | SvelteKit 2.0, Svelte 5 |
| Язык | TypeScript |
| Стилизация | Tailwind CSS 4.0 |
| База данных | MongoDB |
| Шифрование | Web Crypto API |
| Редактор | CodeMirror 6 |
| Хостинг | Vercel |