Rabbit स्ट्रीम सिफ़र डिक्रिप्शन
CryptoJS से बना Rabbit स्ट्रीम सिफ़र डेटा (पासफ़्रेज़ के साथ Salted__ Base64) या 128-बिट hex की और वैकल्पिक 64-बिट IV वाला रॉ सिफ़रटेक्स्ट डिक्रिप्ट करें।
आउटपुट Base64 में OpenSSL "Salted__" फ़ॉर्मेट में है और की व IV पासफ़्रेज़ से बनते हैं – यही फ़ॉर्मेट CryptoJS.Rabbit.encrypt(text, passphrase) का है। OpenSSL में Rabbit सिफ़र नहीं है।
पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।
Rabbit डिक्रिप्शन क्या है?
Rabbit स्ट्रीम सिफ़र से एन्क्रिप्ट किया डेटा डिक्रिप्ट करता है, जो आमतौर पर CryptoJS.Rabbit.encrypt से बनता है। Base64 U2FsdGVkX1… स्ट्रिंग उसके पासफ़्रेज़ के साथ पेस्ट करें, या hex की और IV के साथ रॉ सिफ़रटेक्स्ट।
Rabbit डिक्रिप्शन का उपयोग कैसे करें
- एन्क्रिप्शन में जो की का स्रोत इस्तेमाल हुआ था वही चुनें:
U2FsdGVkX1…(Salted__) डेटा के लिए पासफ़्रेज़ (OpenSSL-संगत), या रॉ सिफ़रटेक्स्ट के लिए रॉ की + IV (hex)। - पासफ़्रेज़ या 16 बाइट की hex की दर्ज करें (और अगर IV इस्तेमाल हुआ था तो 8 बाइट का IV)।
- सिफ़रटेक्स्ट पेस्ट करें और डिक्रिप्ट करें पर क्लिक करें।
उदाहरण
U2FsdGVkX19PD1rihUsU44L3vJkKAmy580QhQw== (passphrase "secret")
Hello Rabbit
CryptoJS.Rabbit.encrypt("Hello Rabbit", "secret") से बना सिफ़रटेक्स्ट।
Rabbit डिक्रिप्शन का उपयोग कब करें
CryptoJS Rabbit इस्तेमाल करने वाले एप्लिकेशन का डेटा पढ़ने या डिबग करने के लिए इस्तेमाल करें। सही पासफ़्रेज़ या की के बिना यह डिक्रिप्ट नहीं कर सकता।
Rabbit डिक्रिप्शन कैसे काम करता है
Salted__ हेडर से सॉल्ट पढ़ा जाता है, 16 बाइट की की और 8 बाइट का IV दोबारा निकाले जाते हैं (EVP_BytesToKey MD5 या PBKDF2-SHA256), और Rabbit कीस्ट्रीम को सिफ़रटेक्स्ट के साथ XOR किया जाता है। रॉ मोड में आपकी की और IV सीधे इस्तेमाल होते हैं। स्ट्रीम सिफ़र में पैडिंग नहीं होती, इसलिए गलत की अमान्य UTF-8 आउटपुट के रूप में दिखती है।
सामान्य उपयोग मामले
- CryptoJS.Rabbit इस्तेमाल करने वाले वेब ऐप की सहेजी वैल्यू डिक्रिप्ट करना
- जाँचना कि आपका Rabbit इम्प्लीमेंटेशन CryptoJS से मेल खाता है
- डिबगिंग के दौरान टेस्ट डेटा वापस पाना
- Rabbit-एन्क्रिप्टेड डेटा को AES में माइग्रेट करना
सुरक्षा नोट
Rabbit का कोई ज्ञात व्यावहारिक ब्रेक नहीं है, लेकिन यह कम इस्तेमाल होता है, इसमें बिल्ट-इन इंटेग्रिटी सुरक्षा नहीं है और कुछ ही लाइब्रेरी इसे सपोर्ट करती हैं। नए सिस्टम के लिए AES-GCM इस्तेमाल करें।
अक्सर पूछे जाने वाले प्रश्न
मुझे “invalid UTF-8” त्रुटि क्यों मिलती है?
सबसे संभव है कि पासफ़्रेज़ या की गलत है; Rabbit खुद यह नहीं पकड़ सकता। अगर मूल डेटा बाइनरी था तो आउटपुट को Hex करें।
मेरे सिफ़रटेक्स्ट में U2FsdGVkX1 प्रीफ़िक्स नहीं है।
तब CryptoJS को स्पष्ट की और IV के साथ बुलाया गया था। रॉ की + IV (hex) चुनें और उन्हें hex में दर्ज करें।
क्या यह RabbitLegacy सपोर्ट करता है?
नहीं, सिर्फ़ मानक CryptoJS.Rabbit वेरिएंट।