मुफ़्त प्राइवेसी टूल

अपने ब्राउज़र में फ़ाइल एन्क्रिप्ट करें

फ़ाइल चुनें, पासफ़्रेज़ चुनें, और एन्क्रिप्टेड कॉपी डाउनलोड करें। 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 में डिक्रिप्ट करने, के लिए जो कुछ चाहिए:

bytesfieldcontents
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 में, और छिपी हुई तिजोरियाँ जिनकी कोई सूची या गिनती कहीं संग्रहीत नहीं होती।

App Store से डाउनलोड करें

iPhone और iPad · iOS 17+ · मुफ़्त