मुफ़्त प्राइवेसी टूल
अपने ब्राउज़र में फ़ाइल एन्क्रिप्ट करें
फ़ाइल चुनें, पासफ़्रेज़ चुनें, और एन्क्रिप्टेड कॉपी डाउनलोड करें। AES-256-GCM, और कुंजी आपके ब्राउज़र में बनती है। कुछ भी अपलोड नहीं होता, और एक बार लोड होने के बाद यह ऑफ़लाइन चलता है। फ़ॉर्मैट नीचे बाइट-दर-बाइट दर्ज है, ताकि आपको हमारी किसी बात पर यूँ ही भरोसा न करना पड़े।
पूरी तरह इसी टैब में चलता है। कुछ भी अपलोड नहीं होता, और एक बार लोड होने पर ऑफ़लाइन काम करता है।
कोई भी फ़ाइल। बड़ी फ़ाइलों को मेमोरी चाहिए। नीचे ईमानदार सीमाएँ देखें।
कोई रिकवरी नहीं है। भूला हुआ पासफ़्रेज़ यानी ऐसी फ़ाइल जिसे कोई भी, हम भी, कभी नहीं खोल सकते।
हर पैरामीटर, खुलकर
- सिफ़र
- AES-256-GCM (WebCrypto), 128-बिट टैग
- कुंजी-व्युत्पत्ति
- PBKDF2-HMAC-SHA-256, 600,000 इटरेशन
- KDF सॉल्ट
- 16 बाइट, CSPRNG, हर फ़ाइल के लिए नया
- GCM नॉन्स
- 12 बाइट, CSPRNG, हर फ़ाइल के लिए नया
- प्रमाणित डेटा
- पूरा 42-बाइट हेडर, इसलिए बताए गए किसी भी पैरामीटर से छेड़छाड़ करने पर डिक्रिप्शन टूट जाता है
- पासफ़्रेज़ एन्कोडिंग
- UTF-8, NFC-सामान्यीकृत (ताकि किसी भी डिवाइस पर टाइप किया वही वाक्यांश वही कुंजी बनाए)
ईमानदार सीमाएँ
यह Sealby ऐप की तिजोरी का फ़ॉर्मैट नहीं है। ऐप कुंजियाँ हर डिवाइस पर कैलिब्रेट किए Argon2id से बनाता है, उन्हें Secure Enclave में लपेटता है, और कॉन्टेंट को ऐसे चंक किए कंटेनरों में रखता है जिनकी मौजूदगी से इनकार किया जा सकता है। कोई वेब पेज इनमें से कुछ भी नहीं कर सकता। यह पेज एक अलग उपयोगिता है, जो उसी पर बनी है जो ब्राउज़र मूल रूप से देते हैं।
PBKDF2 मेमोरी-हार्ड नहीं है। यही इकलौता कुंजी-व्युत्पत्ति फ़ंक्शन है जो ब्राउज़र मूल रूप से देते हैं, और 600,000 इटरेशन हर अनुमान को धीमा बनाते हैं, पर GPU रिग फिर भी इस पर Argon2id के मुक़ाबले कहीं तेज़ी से हमला करता है। इसलिए सुरक्षा आपके पासफ़्रेज़ में है: चार रैंडम शब्द या उससे ज़्यादा, कोई पासवर्ड नहीं।
WebCrypto एक ही बार में एन्क्रिप्ट करता है। कोई स्ट्रीमिंग नहीं है, इसलिए प्रोसेसिंग के दौरान पूरी फ़ाइल दो से तीन बार मेमोरी में बैठी रहती है। कुछ सौ मेगाबाइट ज़्यादातर डिवाइसों पर ठीक हैं। कई गीगाबाइट के आर्काइव के लिए डेस्कटॉप टूल इस्तेमाल करें। एन्क्रिप्टेड आउटपुट फ़ाइल का अनुमानित आकार भी उजागर करता है। नाम अंदर एन्क्रिप्टेड होता है, पर आकार छिपाया नहीं जाता।
फ़ॉर्मैट, बाइट-दर-बाइट
तकनीकी पाठक को इस पेज का आउटपुट स्वतंत्र रूप से सत्यापित करने, या बीस पंक्तियों के Python में डिक्रिप्ट करने, के लिए जो कुछ चाहिए:
| bytes | field | contents |
|---|---|---|
| 0–7 | मैजिक | ASCII "SBXF0001" |
| 8 | वर्शन | 0x01 |
| 9 | एल्गोरिथ्म | 0x01 = AES-256-GCM + PBKDF2-HMAC-SHA-256 |
| 10–13 | इटरेशन | uint32, big-endian (600,000) |
| 14–29 | सॉल्ट | 16 बाइट |
| 30–41 | नॉन्स | 12 बाइट |
| 42–अंत | सिफ़रटेक्स्ट | पेलोड का AES-256-GCM, AAD = बाइट 0–41; आख़िरी 16 बाइट GCM टैग हैं |
एन्क्रिप्शन से पहले पेलोड: [2-बाइट नाम की लंबाई, big-endian][फ़ाइल-नाम, UTF-8][फ़ाइल के बाइट]। मूल फ़ाइल-नाम एन्क्रिप्टेड रूप में साथ चलता है; डिक्रिप्शन पर वह बहाल हो जाता है।
संदर्भ डिक्रिप्टर (Python, cryptography लाइब्रेरी)
import sys, hashlib, struct, unicodedata
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
raw = open(sys.argv[1], "rb").read()
assert raw[:8] == b"SBXF0001" and raw[8] == 1 and raw[9] == 1
iters = struct.unpack(">I", raw[10:14])[0] # 600000
salt, nonce, ct = raw[14:30], raw[30:42], raw[42:]
phrase = unicodedata.normalize("NFC", sys.argv[2]).encode()
key = hashlib.pbkdf2_hmac("sha256", phrase, salt, iters, 32)
plain = AESGCM(key).decrypt(nonce, ct, raw[:42]) # AAD = header
name_len = struct.unpack(">H", plain[:2])[0]
name = plain[2 : 2 + name_len].decode()
open(name, "wb").write(plain[2 + name_len :])
print("decrypted ->", name)यह डेमो है। असली प्रोडक्ट तिजोरी है।
एक फ़ाइल, एक पासफ़्रेज़, एक पेज। ब्राउज़र इतना ही कर सकता है। Sealby यह ढंग से करता है: आपके डिवाइस के लिए कैलिब्रेट किया Argon2id, कुंजियाँ Secure Enclave में, और छिपी हुई तिजोरियाँ जिनकी कोई सूची या गिनती कहीं संग्रहीत नहीं होती।
iPhone और iPad · iOS 17+ · मुफ़्त