ChaCha20 एन्क्रिप्शन और डिक्रिप्शन
ChaCha20-Poly1305 या सादे ChaCha20 से टेक्स्ट एन्क्रिप्ट और डिक्रिप्ट करें।
डिक्रिप्ट करने के लिए यह फिर से चाहिए होगा। आप जो भी लिखते हैं, वह इस पेज से बाहर नहीं जाता।
OpenSSL का डिफ़ॉल्ट 10,000 है। कोई भी संख्या चलेगी: ज़्यादा इटरेशन से पासवर्ड का अंदाज़ा लगाना धीमा होता है; डिक्रिप्ट करने के लिए वही संख्या चाहिए।
ऑथेंटिकेटेड: ग़लत पासवर्ड या कुंजी, या टेक्स्ट में कोई भी बदलाव पकड़ लिया जाता है।
OpenSSL का enc कमांड ChaCha20-Poly1305 नहीं पढ़ सकता। इसे यहाँ डिक्रिप्ट करें, या किसी क्रिप्टो लाइब्रेरी से कोड में: 16 बाइट का टैग सिफ़रटेक्स्ट के बाद आता है।
ChaCha20-Poly1305 (RFC 8439) वह ऑथेंटिकेटेड सिफ़र है जो TLS 1.3 और WireGuard में इस्तेमाल होता है: यह टेक्स्ट एन्क्रिप्ट करने के साथ उसमें हुआ कोई भी बदलाव, या ग़लत पासवर्ड, पकड़ लेता है। यहाँ पासवर्ड से या अपनी 256-बिट कुंजी और 12 बाइट के नॉन्स से टेक्स्ट एन्क्रिप्ट करें, या Base64 या hex सिफ़रटेक्स्ट पेस्ट करके उसे डिक्रिप्ट करें। पासवर्ड के साथ कुंजी और नॉन्स रैंडम सॉल्ट के साथ PBKDF2-HMAC-SHA256 से बनते हैं, जैसे openssl enc -pbkdf2 में, और आउटपुट होता है Salted__, सॉल्ट, सिफ़रटेक्स्ट और 16 बाइट का Poly1305 टैग। टैग के बिना सादा ChaCha20 भी यहाँ है, OpenSSL के chacha20 वाली बनावट में। आपका टेक्स्ट, पासवर्ड और कुंजियाँ कभी आपके डिवाइस से बाहर नहीं जाते: यह आपके ब्राउज़र में चलता है, मुफ़्त, बिना साइन-अप।
ChaCha20-Poly1305 से टेक्स्ट कैसे एन्क्रिप्ट करें
- “एन्क्रिप्ट” या “डिक्रिप्ट” चुनें। एन्क्रिप्ट करने के लिए टेक्स्ट लिखें, या डिक्रिप्ट करने के लिए Base64 या hex टेक्स्ट पेस्ट करें — फ़ॉर्मैट अपने-आप पहचाना जाता है।
- पासवर्ड डालें (“जनरेट करें” एक मज़बूत पासवर्ड बनाता है), या “कुंजी और IV (hex)” पर जाकर 64 अंकों की कुंजी और 24 अंकों का नॉन्स (सादे ChaCha20 के लिए 32 अंकों का IV) डालें या जनरेट करें।
- ChaCha20-Poly1305 रहने दें, या openssl enc -chacha20 से मेल के लिए ChaCha20 चुनें। डिक्रिप्ट करने के लिए वही मोड, पासवर्ड और इटरेशन संख्या इस्तेमाल करें जिनसे टेक्स्ट एन्क्रिप्ट हुआ था।
- नतीजा कॉपी या डाउनलोड करें, या जाँच के तौर पर “अदला-बदली” दबाकर उसे इनपुट में ले जाएँ और फिर से डिक्रिप्ट करें।
सुविधाएँ
- RFC 8439 वाला ChaCha20-Poly1305: 256-बिट कुंजी, 12 बाइट का नॉन्स, 16 बाइट का टैग
- OpenSSL की बनावट में सादा ChaCha20: 16 बाइट का IV, जिसमें 4 बाइट का little-endian काउंटर और 12 बाइट का नॉन्स होता है
- पासवर्ड मोड: रैंडम सॉल्ट के साथ PBKDF2-HMAC-SHA256 से कुंजी और नॉन्स, openssl enc -pbkdf2 के Salted__ हेडर के पीछे
- “कुंजी और IV” मोड: अपनी hex कुंजी और नॉन्स, या “जनरेट करें” से रैंडम
- Poly1305 के साथ ग़लत पासवर्ड या कुंजी, या एक भी बदला हुआ अक्षर, बेकार डेटा लौटाने के बजाय डिक्रिप्शन को फ़ेल कर देता है
- कोई पैडिंग नहीं: सिफ़रटेक्स्ट टेक्स्ट जितना ही लंबा होता है, Poly1305 के साथ 16 बाइट का टैग अलग से
- सादे ChaCha20 के लिए openssl enc -chacha20 कमांड
क्या यह निजी है?
हाँ। ChaCha20 आपके ब्राउज़र के अंदर WebAssembly में चलता है, और पासवर्ड से कुंजी ब्राउज़र का Web Crypto बनाता है। आप जो भी लिखते हैं — टेक्स्ट, पासवर्ड, कुंजी या नॉन्स — वह अपलोड या सेव नहीं होता।
अक्सर पूछे जाने वाले सवाल
ChaCha20-Poly1305 या सादा ChaCha20?
हर नए काम के लिए डिफ़ॉल्ट ChaCha20-Poly1305: इसका Poly1305 टैग एक भी अक्षर बदलने या ग़लत पासवर्ड होने पर डिक्रिप्शन फ़ेल कर देता है। सादा ChaCha20 सिर्फ़ एन्क्रिप्ट करता है — ग़लत कुंजी से एरर के बजाय बेमतलब बाइट मिलते हैं — इसलिए इसे सिर्फ़ ऐसे सिस्टम से मेल के लिए इस्तेमाल करें जो इसे इस्तेमाल करता हो, जैसे openssl enc -chacha20।
क्या OpenSSL इसे डिक्रिप्ट कर सकता है?
सादा ChaCha20, हाँ: पासवर्ड मोड के लिए echo 'U2FsdGVkX1…' | openssl enc -d -chacha20 -pbkdf2 -iter 10000 -a -A, या “कुंजी और IV” मोड में -pbkdf2 -iter की जगह -K <key hex> -iv <IV hex>। ChaCha20-Poly1305, नहीं: openssl enc AEAD सिफ़र को मना कर देता है। उसे यहाँ पढ़ें, या कोड में: “कुंजी और IV” मोड में आउटपुट होता है सिफ़रटेक्स्ट और उसके बाद 16 बाइट का टैग, बिना किसी हेडर के।
नॉन्स दोबारा इस्तेमाल हो जाए तो क्या होता है?
एक ही कुंजी और नॉन्स वाले दो संदेश अपने टेक्स्ट का XOR ज़ाहिर कर देते हैं, और हमलावर को नकली Poly1305 टैग बनाने देते हैं। पासवर्ड मोड में यह ग़लती हो ही नहीं सकती: हर एन्क्रिप्शन नया रैंडम सॉल्ट चुनता है, इसलिए कुंजी, नॉन्स और आउटपुट हर बार नए होते हैं। “कुंजी और IV” मोड में हर संदेश से पहले नए नॉन्स के लिए “जनरेट करें” दबाएँ।
क्या ChaCha20, AES जितना सुरक्षित है?
हाँ। ChaCha20-Poly1305 और AES-GCM दोनों TLS 1.3 के मानक सिफ़र हैं जिन पर कोई व्यावहारिक हमला नहीं है, और बिना AES हार्डवेयर वाले फ़ोन पर ChaCha20 अक्सर ज़्यादा तेज़ होता है। कमज़ोर कड़ी पासवर्ड है: लंबा रैंडम पासवर्ड इस्तेमाल करें, और जब दोनों तरफ़ आपके हाथ में हों तो 6,00,000 इटरेशन वाली सेटिंग।
क्या यह XChaCha20-Poly1305 सपोर्ट करता है?
नहीं। XChaCha20, यानी libsodium में मिलने वाला 24 बाइट नॉन्स वाला रूप, एक अलग बनावट है, इसलिए उसका सिफ़रटेक्स्ट यहाँ डिक्रिप्ट नहीं हो सकता। यह पेज RFC 8439 का 12 बाइट का नॉन्स और OpenSSL का 16 बाइट का chacha20 IV लेता है। टेक्स्ट के बजाय फ़ाइल एन्क्रिप्ट करने के लिए “फ़ाइल एन्क्रिप्शन” टूल age फ़ॉर्मैट में ChaCha20-Poly1305 इस्तेमाल करता है।