[c#] एंड्रॉइड और सी # के बीच एन्क्रिप्शन संगत


1 Answers

उपलब्ध सी # स्रोत कोड नमूने में, इस रेखा को देखें:

Encoding.ASCII.GetString(newClearData);

यूटीएफ -8, एंड्रॉइड के लिए डिफ़ॉल्ट एन्कोडिंग है, इसलिए एन्क्रिप्टेड स्ट्रिंग (विशेषकर गैर-एएससीआईआई जैसे कि चीनी) सी # को यूटीएफ -8 मानते हुए ASCII एन्कोडिंग का उपयोग करके स्ट्रिंग में वापस डीकोड हो जाने पर पाठ तले हो जाता है। यहाँ एक बेहतर है,

Encoding.UTF8.GetString(newClearData);

धन्यवाद!

Question

मुझे बहुत सी उदाहरण मिली हैं कि सी # में एन्क्रिप्शन कैसे करना है, और एंड्रॉइड के लिए एक द्यूज, लेकिन मैं विशेषकर एंड्रॉइड से एन्क्रिप्टिंग को संभालने का एक तरीका तलाश रहा हूं (एईएस, ट्रिपलडीएस आदि की तरह), और अंत में सी # में डिक्रिप्ट किया जा रहा है मुझे एंड्रॉइड में एईडिंग एन्कोडिंग और सी # में एईएस एन्कोडिंग के लिए एक उदाहरण मिला लेकिन मुझे यकीन नहीं है कि ये संगत हैं (सी # को IV की आवश्यकता है, एंड्रॉइड इम्प्लेशंस में इसके लिए कुछ भी निर्दिष्ट नहीं है)। साथ ही, HTTP (Base64?) पर ट्रांसमिशन के लिए एन्क्रिप्ट किए गए स्ट्रिंग को एन्कोड करने का एक अच्छा तरीका सुझाएगा। धन्यवाद।




यदि आप दोनों सिरों पर समान साइफर (जैसे एईएस) और मोड (सीटीआर, सीएफबी, सीसीएम, आदि) को सही ढंग से लागू करते हैं, तो एक छोर से सिफरटेक्स्ट को प्लेटफॉर्म की परवाह किए बिना दूसरे छोर से डिक्रिप्ट किया जा सकता है।

आपके द्वारा जुड़ा हुआ एंड्रॉइड का उदाहरण ईसीबी मोड का उपयोग करने के लिए प्रतीत होता है, और इस प्रकार आपके उद्देश्यों के लिए सुरक्षित नहीं है। यह गंभीर रूप से महत्वपूर्ण है कि आप अपने द्वारा चयनित ब्लॉक मोड के निहितार्थ को समझते हैं इस स्तर पर क्रिप्टो गलत पाने के लिए बहुत आसान है, जिसके परिणामस्वरूप एक ऐसी प्रणाली होती है, जो आपको जितनी सुरक्षित लगता है उतनी सुरक्षित नहीं है

संपादित करें: मैं इसे वापस लेता हूं, यह ईसीबी का उपयोग नहीं कर रहा है, लेकिन जिस तरीके से यह आईटी उत्पन्न करता है वह व्यावहारिक नहीं है। किसी भी स्थिति में, ब्लॉक मोड के प्रभाव को समझने के बारे में मेरी बात खड़ा है।

आप इस विकिपीडिया लेख से शुरू कर सकते हैं। ब्रुश शनीयर की पुस्तक ' प्रैक्टिकल क्रिप्टोग्राफी' क्रिप्टोग्राफ़िक सुरक्षा को लागू करने वाले किसी भी व्यक्ति के लिए बेहद महत्वपूर्ण है।

स्ट्रिंग एन्कोडिंग के रूप में, यदि आपको स्ट्रिंग को एएससीआईआई टेक्स्ट में परिवर्तित करना होगा Base64 किसी भी तरह से एक अच्छा तरीका है, लेकिन मैं सुझाव देता हूं कि आप इस अतिरिक्त कदम को छोड़ने के लिए HTTP PUT या POST के प्रयोग की जांच करें।




Related