
डेवलपर्स के लिए सुरक्षित, क्षणिक गुप्त साझाकरण।
डेवलपर्स के लिए सुरक्षित, अस्थायी गुप्त साझाकरण।
Slack में गुप्त चीज़ें चिपकाना बंद करें। enseal सुरक्षित मार्ग को असुरक्षित मार्ग से तेज़ बनाता है — एक ही कमांड और बिना किसी सेटअप के एन्क्रिप्टेड, एकल-उपयोग चैनलों के माध्यम से .env फ़ाइलें और गुप्त चीज़ें साझा करें।```bash
$ enseal share .env Share code: 7-guitarist-revenge Secrets: 14 variables (staging) Expires: on first receive
$ enseal receive 7-guitarist-revenge ok: 14 secrets written to .env
## स्थापना
### crates.io से```bash
cargo install enseal
git clone https://github.com/FlerAlex/enseal.git cd enseal cargo build --release
### प्रीबिल्ट बाइनरीज़
[GitHub Releases](https://github.com/FlerAlex/enseal/releases) से लिनक्स (x86_64, aarch64), macOS (Intel, Apple Silicon), और विंडोज के लिए डाउनलोड करें।
## त्वरित प्रारंभ
### अनाम मोड (शून्य सेटअप)
एक बार के कोड का उपयोग करके गुप्त जानकारी साझा करें। कोई कुंजी नहीं, कोई खाता नहीं — तुरंत काम करता है।```bash
# terminal 1 (sender)
enseal share .env
Share code: 7-guitarist-revenge
Secrets: 14 variables
Expires: on first receive
# terminal 2 (recipient) — enter the code
enseal receive 7-guitarist-revenge
ok: 14 secrets written to .env
एकल रहस्यों के साथ भी काम करता है:```bash
echo "my-api-token" | enseal share --label "API key" Share code: 4-orbital-hammock
enseal receive 4-orbital-hammock my-api-token
दोनों टर्मिनल एक ही समय पर खुले होने चाहिए — प्रेषक तब तक प्रतीक्षा करता है जब तक प्राप्तकर्ता कनेक्ट नहीं करता।
### पहचान मोड (कुंजी-आधारित, कोई कोड नहीं)
स्थापित कुंजी विश्वास वाली टीमों के लिए। एक नाम पर एन्क्रिप्ट करें, किसी समन्वय की आवश्यकता नहीं।```bash
# one-time setup
enseal keys init
enseal keys export > my-key.pub # share this with teammates
enseal keys import teammate-key.pub # import theirs
# sender encrypts to recipient by name
enseal share .env --to sarah
# or push through the public relay (no codes at all)
enseal share .env --to sarah --relay wss://relay.enseal.dev
# or produce an encrypted file (no network)
enseal share .env --to sarah --output ./drop/
enseal inject 7-guitarist-revenge -- npm start
enseal inject --listen --relay wss://relay.enseal.dev -- docker compose up
enseal inject ./staging.env.age -- python manage.py runserver
गोपनीयता केवल चाइल्ड प्रक्रिया की मेमोरी में मौजूद रहती है। जब वह समाप्त होती है, तो वे गायब हो जाती हैं।
## विशेषताएं
### तीन साझाकरण मोड
**अनाम मोड** (डिफ़ॉल्ट) — वर्महोल-आधारित, शून्य सेटअप। आपको बस एक मानव-पठनीय कोड चाहिए। SPAKE2 पारस्परिक प्रमाणीकरण MITM हमलों को रोकता है।```bash
enseal share .env # generates wormhole code
enseal receive 7-guitarist-revenge # uses code
--relay के साथ, anonymous mode wormhole को बायपास करता है और इसके बजाय enseal relay transport का उपयोग करता है। दोनों पक्षों को एक ही relay का उपयोग करना होगा:```bash
enseal share .env --relay ws://relay.internal:4443 # generates channel code
enseal receive 3421-amber-frost --relay ws://relay.internal:4443
**एसिंक अपलोड (`--upload`)** — केवल प्रेषक। स्थानीय रूप से एन्क्रिप्ट करता है और [burnurl.dev](https://burnurl.dev) पर पोस्ट करता है, एक स्व-नष्ट होने वाला URL लौटाता है जिसे प्राप्तकर्ता ब्राउज़र में खोलता है। प्राप्तकर्ता पक्ष पर CLI की आवश्यकता नहीं है।```bash
enseal share .env --upload
# Secret URL: https://burnurl.dev/s/a3f9c2e1...
# Expires: 2026-03-08 19:42:00 UTC (24h)
# Reads: 1 (self-destructs on first open)
प्राप्तकर्ता किसी भी ब्राउज़र में URL खोलता है — enseal इंस्टॉल की आवश्यकता नहीं है। अपलोड करने से पहले क्लाइंट-साइड एन्क्रिप्ट करने के लिए --passphrase जोड़ें (सर्वर केवल सिफरटेक्स्ट देखता है):```bash
enseal share .env --upload --passphrase # prompts for passphrase
enseal share .env --upload --ttl 4 # 4-hour TTL (max 24)
burnurl.dev पर API एक्सेस के लिए Pro या Team योजना आवश्यक है। अपनी कुंजी के लिए `BURNURL_API_KEY` सेट करें। स्व-होस्टेड इंस्टेंस के लिए बेस URL को ओवरराइड करें: `BURNURL_URL=https://burnurl.internal`।
**Identity mode** — ज्ञात टीम साथियों के लिए पब्लिक-की एन्क्रिप्शन। एक नाम पर एन्क्रिप्ट करें।```bash
enseal keys init # one-time setup
enseal share .env --to sarah # encrypt to sarah's public key
Identity mode तीन ट्रांसपोर्ट विकल्पों का समर्थन करता है:```bash
enseal share .env --to sarah
enseal share .env --to sarah --relay wss://relay.enseal.dev
enseal share .env --to sarah --output ./drop/
### लचीला इनपुट
enseal कई स्रोतों से गुप्त जानकारी स्वीकार करता है:```bash
# .env file (default)
enseal share .env
enseal share staging.env
# environment profile
enseal share --env staging # resolves to .env.staging
# pipe from stdin
echo "sk_live_abc123" | enseal share
cat secrets.env | enseal share
pass show stripe/key | enseal share --to sarah
# inline (careful — visible in shell history)
enseal share --secret "API_KEY=sk_live_abc123"
# wrap raw string as KEY=VALUE
echo "sk_live_abc123" | enseal share --as STRIPE_KEY
${VAR} संदर्भ भेजने से पहले हल किए जाते हैं ताकि प्राप्तकर्ताओं को पूरी तरह से विस्तारित मान मिलें:```env
DB_HOST=postgres.internal
DB_PORT=5432
DATABASE_URL=postgres://user:pass@${DB_HOST}:${DB_PORT}/myapp
`${VAR:-default}` फ़ॉलबैक सिंटैक्स का समर्थन करता है। सर्कुलर और आगे के संदर्भों का पता लगाया जाता है और उन्हें अस्वीकार कर दिया जाता है। `${VAR}` सिंटैक्स को बिना इंटरपोलेशन के भेजने के लिए `--no-interpolate` का उपयोग करें।
### फ़िल्टरिंग
नियंत्रित करें कि कौन से वेरिएबल भेजे जाते हैं:```bash
# exclude public/non-secret vars
enseal share .env --exclude "^PUBLIC_|^NEXT_PUBLIC_"
# send only matching vars
enseal share .env --include "^DB_|^API_"
# skip .env parsing entirely (send raw file)
enseal share .env --no-filter
आउटपुट भेजी गई चीज़ के अनुसार अनुकूल होता है:```bash
enseal receive CODE ok: 14 secrets written to .env
enseal receive CODE --output staging.env
enseal receive CODE sk_live_abc123
enseal receive CODE --clipboard ok: copied to clipboard
enseal receive CODE --no-write
enseal receive ./staging.env.age ok: signature verified, file decrypted ok: 14 secrets written to .env
### Inject
गुप्त जानकारी प्राप्त करें और उन्हें सीधे चाइल्ड प्रक्रिया में पर्यावरण चर के रूप में इंजेक्ट करें। गुप्त जानकारी कभी भी फाइलसिस्टम को स्पर्श नहीं करती।```bash
# anonymous mode: inject via wormhole code
enseal inject 7-guitarist-revenge -- npm start
# identity mode: listen for incoming transfer on relay
enseal inject --listen --relay wss://relay.enseal.dev -- docker compose up