Rabbit स्ट्रीम सिफ़र एन्क्रिप्शन

Rabbit स्ट्रीम सिफ़र (RFC 4503, eSTREAM) से टेक्स्ट एन्क्रिप्ट करें: CryptoJS फ़ॉर्मेट का पासफ़्रेज़ या 128-बिट hex की और 64-बिट IV। स्थानीय रूप से चलता है।

Rabbit एक कम इस्तेमाल होने वाला स्ट्रीम सिफ़र है, इसमें इंटेग्रिटी सुरक्षा नहीं है और लाइब्रेरी सपोर्ट भी कम है। नए ऐप्लिकेशन के लिए AES-GCM चुनें।

आउटपुट Base64 में OpenSSL "Salted__" फ़ॉर्मेट में है और की व IV पासफ़्रेज़ से बनते हैं – यही फ़ॉर्मेट CryptoJS.Rabbit.encrypt(text, passphrase) का है। OpenSSL में Rabbit सिफ़र नहीं है।

पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।

Rabbit एन्क्रिप्शन क्या है?

Rabbit से डेटा एन्क्रिप्ट करता है, जो eSTREAM पोर्टफ़ोलियो का तेज़ 128-बिट स्ट्रीम सिफ़र है (RFC 4503)। यह ज़्यादातर CryptoJS.Rabbit इस्तेमाल करने वाले JavaScript प्रोजेक्ट में मिलता है, और यह टूल उसके साथ संगत आउटपुट बनाता है।

Rabbit एन्क्रिप्शन का उपयोग कैसे करें

  1. पासफ़्रेज़ (OpenSSL-संगत) चुनकर पासफ़्रेज़ लिखें, या रॉ की + IV (hex) चुनकर 16 बाइट की की और वैकल्पिक 8 बाइट का IV दें।
  2. प्लेनटेक्स्ट लिखें या पेस्ट करें।
  3. एन्क्रिप्ट करें पर क्लिक करें, Base64 या Hex आउटपुट चुनें और नतीजा कॉपी करें।

उदाहरण

इनपुट
Raw key 000102030405060708090a0b0c0d0e0f, IV 0001020304050607, plaintext "Rabbit stream", Hex output
आउटपुट
a0e87bbfc85cd88a7e42510ffa

उसी की और IV के साथ CryptoJS.Rabbit जैसा ही नतीजा।

Rabbit एन्क्रिप्शन का उपयोग कब करें

इसे CryptoJS Rabbit इस्तेमाल करने वाले एप्लिकेशन के साथ काम करने या ऐसे कोड को टेस्ट करने के लिए इस्तेमाल करें। नए डिज़ाइन के लिए AES-GCM या ChaCha20-Poly1305 चुनें, जो मानकीकृत और प्रमाणित हैं।

Rabbit एन्क्रिप्शन कैसे काम करता है

Rabbit 513 बिट की आंतरिक स्टेट रखता है (आठ 32-बिट स्टेट वर्ड, आठ काउंटर और एक कैरी बिट) और हर इटरेशन में 128 कीस्ट्रीम बिट देता है, जिन्हें डेटा के साथ XOR किया जाता है। की 128 बिट की होती है; वैकल्पिक 64-बिट IV हर संदेश की कीस्ट्रीम को अनूठा बनाता है। पासफ़्रेज़ मोड पासफ़्रेज़ और रैंडम सॉल्ट से EVP_BytesToKey (MD5) या PBKDF2-SHA256 द्वारा की व IV निकालता है और Base64 Salted__ डेटा देता है – जो MD5 विकल्प के साथ CryptoJS.Rabbit.encrypt(text, passphrase) जैसा ही है। रॉ hex कीज़ CryptoJS की तरह बाइट-स्ट्रीम क्रम में पढ़ी जाती हैं; RFC 4503 अपने टेस्ट वेक्टर big-endian संख्या के रूप में छापता है, यानी हर 16 बाइट का ब्लॉक उलटा।

सामान्य उपयोग मामले

  • डिबगिंग के लिए CryptoJS.Rabbit.encrypt का आउटपुट दोहराना
  • Rabbit इस्तेमाल करने वाले JavaScript ऐप के लिए टेस्ट डेटा बनाना
  • स्ट्रीम सिफ़र के व्यवहार की तुलना RC4 से करना
  • RFC 4503 कीस्ट्रीम वेक्टर जाँचना

सुरक्षा नोट

Rabbit का कोई ज्ञात व्यावहारिक ब्रेक नहीं है, लेकिन यह कम इस्तेमाल होता है, इसमें बिल्ट-इन इंटेग्रिटी सुरक्षा नहीं है और कुछ ही लाइब्रेरी इसे सपोर्ट करती हैं। नए सिस्टम के लिए AES-GCM इस्तेमाल करें।

अक्सर पूछे जाने वाले प्रश्न

क्या यह CryptoJS के साथ संगत है?

हाँ। EVP_BytesToKey (MD5) वाला पासफ़्रेज़ मोड CryptoJS.Rabbit.encrypt(text, "passphrase") से मेल खाता है, और रॉ मोड स्पष्ट की व IV WordArray वाले CryptoJS से।

क्या OpenSSL Rabbit डिक्रिप्ट कर सकता है?

नहीं, OpenSSL में Rabbit लागू नहीं है। सिर्फ़ कंटेनर फ़ॉर्मेट (Salted__ + सॉल्ट) एक जैसा है।

क्या मुझे IV चाहिए?

Rabbit के लिए यह वैकल्पिक है, लेकिन IV के बिना एक ही की हमेशा एक ही कीस्ट्रीम देती है। पासफ़्रेज़ मोड हमेशा रैंडम सॉल्ट से नया IV निकालता है।

और श्रेणियाँ देखें