AES एन्क्रिप्ट / डिक्रिप्ट
क्रिप्टोPBKDF2-व्युत्पन्न कुंजी, यादृच्छिक नमक और IV के साथ AES-GCM सममित एन्क्रिप्शन। पासवर्ड आधारित।
इस पृष्ठ पर
सिमेट्रिक एन्क्रिप्शन क्या है?#
सिमेट्रिक एन्क्रिप्शन लॉक और अनलॉक दोनों के लिए एक साझा गुप्त का उपयोग करता है। आप इसे सादा टेक्स्ट और एक पासवर्ड देते हैं; यह एक घुमावदार ढेर लौटाता है जिसे उसी पासवर्ड के बिना कोई वापस नहीं पढ़ सकता। यह तब सही औज़ार है जब आप गोपनीयता चाहते हैं — किसी चीज़ का कहना छिपाना — बजाय किसी हैश के (जो केवल अखंडता सिद्ध करता है) या HMAC के (जो प्रामाणिकता सिद्ध करता है)।
यह पेज AES-GCM उपयोग करता है, नए कोड के लिए अनुशंसित प्रमाणित-एन्क्रिप्शन मोड। “प्रमाणित” मुख्य शब्द है: GCM केवल आपके टेक्स्ट को घुमाता नहीं, वह एक छेड़छाड़-प्रतिरोधी टैग भी बुनता है। यदि कोई साइफरटेक्स्ट में एक बिट भी बदलता है, तो डिक्रिप्शन चुपचाप कचरा लौटाने के बजाय ज़ोर से विफल होता है। कुंजी आपके पासवर्ड से SHA-256 पर PBKDF2 द्वारा निकाली जाती है, एक ताज़ा यादृच्छिक साल्ट और डिफ़ॉल्ट रूप से 100,000 पुनरावृत्तियों के साथ, इसलिए एक कमज़ोर-सा पासवर्ड भी ऑफ़लाइन ब्रूट-फ़ोर्स करने महँगा रहता है।
सब कुछ Web Crypto के ज़रिए ब्राउज़र में चलता है। न कोई सर्वर, न कोई कुंजी एस्क्रो, और न कोई नेटवर्क कॉल — यदि आप पासवर्ड खो देते हैं तो साइफरटेक्स्ट डिज़ाइन द्वारा अप्राप्य है।
इसका उपयोग कैसे करें#
- कोई मोड चुनें: एन्क्रिप्ट करें (सादा टेक्स्ट इन → साइफरटेक्स्ट आउट) या डिक्रिप्ट करें (साइफरटेक्स्ट इन → सादा टेक्स्ट आउट)।
- पासवर्ड टाइप करें। यह एकल साझा गुप्त है; जो भी बाद में डिक्रिप्ट करता है उसे ठीक वही टाइप करना होगा।
- विकल्प चुनें:
- कुंजी बिट्स — 128 / 192 / 256 (डिफ़ॉल्ट 256)। 256 आधुनिक आधार है; बाकी लीगेसी सिस्टम्स से मिलान के लिए मौजूद हैं।
- पुनरावृत्तियाँ — PBKDF2 राउंड, डिफ़ॉल्ट 100,000। अधिक ऑफ़लाइन क्रैकिंग को धीमा करता है पर आपको भी धीमा करता है; आज 100,000 एक समझदार फ़्लोर है।
- एन्कोडिंग — बेस64 (कॉम्पैक्ट, डिफ़ॉल्ट) या हेक्स।
- इनपुट बाएँ पैनल में चिपकाएँ। एन्क्रिप्ट के लिए, कोई भी टेक्स्ट; डिक्रिप्ट के लिए, वह ढेर जिसे आपने पहले कॉपी किया था।
- आउटपुट दाईं ओर पढ़ें। स्थिति पट्टी बताती है कि ऑपरेशन सफल हुआ या नहीं; डिक्रिप्ट पर ग़लत पासवर्ड एक साफ़ विफलता दिखाता है बजाय भ्रष्ट टेक्स्ट के।
प्रमुख विशेषताएँ#
- AES-GCM प्रमाणित एन्क्रिप्शन। साइफरटेक्स्ट के साथ छेड़छाड़ पहचानी जाती है — एक संशोधित ढेर संभावनीय कचरा पैदा करने के बजाय डिक्रिप्ट होने से इनकार करता है।
- स्व-वर्णित आउटपुट। साल्ट, IV, कुंजी आकार, और पुनरावृत्ति गणना आउटपुट ढेर में पैक किए जाते हैं, इसलिए डिक्रिप्शन को पासवर्ड के अलावा कुछ नहीं चाहिए। आपको वे पैरामीटर कभी अलग से याद रखने या दोबारा भेजने की ज़रूरत नहीं।
- प्रति-संदेश यादृच्छिकता। हर एन्क्रिप्शन के लिए एक नई यादृच्छिक साल्ट और एक नया 12-बाइट IV निकाला जाता है, इसलिए वही टेक्स्ट दो बार एन्क्रिप्ट करने पर दो पूरी तरह अलग ढेर मिलते हैं — दोनों वही सादा टेक्स्ट डिक्रिप्ट होते हैं।
- ट्यूनेबल PBKDF2। ऑफ़लाइन हमले के विरुद्ध कमज़ोर पासवर्ड को सख्त करने के लिए पुनरावृत्ति गणना बढ़ाएँ।
- ज़ीरो अपलोड। एन्क्रिप्शन और डिक्रिप्शन दोनों स्थानीय हैं; पासवर्ड और सादा टेक्स्ट कभी पेज से बाहर नहीं जाते।
कार्य उदाहरण#
संदेश launch at dawn को पासवर्ड correct-horse-battery-staple, कुंजी बिट्स 256, पुनरावृत्तियाँ 100000, एन्कोडिंग बेस64 के साथ एन्क्रिप्ट करें। नीचे का आउटपुट एक वास्तविक, सत्यापित करने योग्य ढेर है — इसे सीधे उसी पासवर्ड के साथ डिक्रिप्ट में चिपकाएँ और launch at dawn वापस आता है:
AQEAAAGGoPVkwA9k0rjoWLw8GXnalIvQoBTP+awUg4DczQwTK5nxMwUaEaQ35WTQbWK8gLMkvuDf+/ndr04f8fw=
(वही टेक्स्ट दोबारा एन्क्रिप्ट करने पर एक अलग ढेर मिलेगा, क्योंकि साल्ट और IV हर रन पर ताज़ा यादृच्छिक होते हैं।) वह ढेर केवल साइफरटेक्स्ट नहीं है। यह एक छोटा लिफ़ाफ़ा है जो इस प्रकार बिछाया गया:
version(1) | keyBits(2) | iterations(4) | salt(16) | IV(12) | ciphertext+tag
डिक्रिप्ट करें पर स्विच करें, ऊपर का ढेर वापस इनपुट में चिपकाएँ, वही पासवर्ड टाइप करें, और दायाँ पैनल launch at dawn लौटाता है। अब थोड़ा अलग पासवर्ड के साथ डिक्रिप्ट दोबारा आज़माएँ — GCM का प्रमाणीकरण टैग वैलिडेट नहीं होगा, और स्थिति पट्टी आधा-भ्रष्ट टेक्स्ट थमाने के बजाय एक विफलता रिपोर्ट करेगी। वह साफ़ विफलता ठीक वही है जो प्रमाणित एन्क्रिप्शन पुराने, अप्रमाणित CBC मोड पर आपको देता है।
अक्सर पूछे जाने वाले प्रश्न#
यदि मैं पासवर्ड भूल जाऊँ तो?#
डेटा चला गया। PBKDF2 और AES ऐसे डिज़ाइन किए गए हैं कि पासवर्ड ढेर से पुनर्प्राप्त नहीं हो सकता — न कोई “पासवर्ड भूल गए” रास्ता है, न कोई बैकडोर, और न कोई ऐसा सर्वर जो उसे रीसेट कर सके। पासवर्ड को एकल विफलता बिंदु मानें, और महत्वपूर्ण पासवर्ड्स को एक पासवर्ड मैनेजर में संग्रहित करने पर विचार करें।
वही टेक्स्ट दो बार एन्क्रिप्ट करने पर अलग आउटपुट क्यों मिलता है?#
क्योंकि हर एन्क्रिप्शन के लिए एक नई यादृच्छिक साल्ट और एक नया यादृच्छिक 12-बाइट IV उत्पन्न होता है। यह जानबूझकर है: यदि समान सादा टेक्स्ट हमेशा समान साइफरटेक्स्ट देता, तो कोई हमलावर दोहराए गए संदेशों को पहचान सकता था। यादृच्छिकता डिक्रिप्शन को प्रभावित नहीं करती, क्योंकि साल्ट और IV ढेर के अंदर यात्रा करते हैं और स्वतः वापस पढ़े जाते हैं।
मुझे कितनी पुनरावृत्तियाँ सेट करनी चाहिए?#
100,000 इंटरैक्टिव उपयोग के लिए एक उचित फ़्लोर है। यदि आप किसी उच्च-मूल्य वाली चीज़ की रक्षा कर रहे हैं और एक संक्षिप्त प्रतीक्षा सहन कर सकते हैं, तो 600,000 एक हमलावर पर एक सार्थक अतिरिक्त लागत लाता है बिना आपके लिए दर्दनाक हुए। लागत डेटा के प्रति बाइट नहीं, प्रति एन्क्रिप्ट या डिक्रिप्ट एक बार चुकाई जाती है।
क्या यह बड़ी फ़ाइलों के लिए सुरक्षित है?#
यह आपके द्वारा चिपकाए जा सकने वाले किसी भी टेक्स्ट को संभालता है, पर यह एक पेज-आकार का औज़ार है, कोई स्ट्रीमिंग फ़ाइल एन्क्रिप्टर नहीं। बहुत बड़े पेलोड्स के लिए, एक हाइब्रिड योजना (डेटा के लिए AES, AES कुंजी के लिए RSA या कुंजी रैपिंग) मानक पैटर्न है — और AES-GCM ठीक उस पैटर्न का सिमेट्रिक आधा हिस्सा है।