2011-09-01 8 views
6

जावा में एन्क्रिप्शन के लिए डिक्रिप्ट करें ... http://cwe.mitre.org/data/definitions/329.html पर आलेख बताता है कि प्रारंभिक वेक्टर हर बार अलग होना चाहिए, लेकिन यदि मैं एक अलग IV का उपयोग करता हूं जिसे मैं एन्क्रिप्ट करने के लिए उपयोग करता हूं, मुझे अपेक्षित डेटा के बजाय कचरा पात्र मिलते हैं।IvParameterSpec को यादृच्छिक बनाने के लिए कैसे करें लेकिन अभी भी

सर्वर पर एन्क्रिप्ट करने और सर्वर पर बीच में IV को संवाद करने के बिना किसी अन्य पर डिक्रिप्ट करने का उचित तरीका क्या है?

आम तकनीक एक बाइट सरणी हार्डकोड करने के लिए प्रतीत होती है, लेकिन माना जाता है कि यह असुरक्षित है ???

+0

आपने लेख को गलत समझा। चतुर्थ प्रत्येक एन्क्रिप्टेड संदेश के लिए अलग होना चाहिए, लेकिन आपको उसी एवी का उपयोग किसी दिए गए संदेश को डीक्रिप्ट करने के लिए करना चाहिए जिसका उपयोग इसे एन्क्रिप्ट करने के लिए किया गया था। नीचे जॉन स्कीट का जवाब देखें। –

उत्तर

9

I मानते हैं एक चतुर्थ नमक की तरह है - यह एक रहस्य नहीं है, इसका उपयोग केवल यादृच्छिकता का एक अतिरिक्त तत्व पेश करने के लिए किया जाता है ताकि एक ही कुंजी के साथ एन्क्रिप्ट किया गया वही संदेश हर बार अलग-अलग आता है।

तो आप एन्क्रिप्टेड मूल्य के हिस्से के रूप में एन्क्रिप्ट करने के लिए उपयोग किए गए चतुर्थ को प्रेषित कर सकते हैं, जैसे कि आप हैश के साथ एक हैश के साथ नमक को स्टोर करेंगे।

बेशक, मैं पूरी तरह गलत हो सकता हूं ...

+1

यह सही है, चतुर्थ सादा पाठ के पहले ब्लॉक के साथ XOR'd है, फिर कुंजी के साथ एन्क्रिप्ट किया गया। शेष ब्लॉक पिछले ब्लॉक के साथ XOR'd हैं। इसे सिफर ब्लॉक चेनिंग (सीबीसी) कहा जाता है। आपको उसी IV के साथ डिक्रिप्ट करना होगा जिसे आपने एन्क्रिप्ट करने के लिए उपयोग किया था। यह एक रहस्य नहीं है, और सादा भेजा जा सकता है/संग्रहीत किया जा सकता है। प्रत्येक बार जब आप डेटा एन्क्रिप्ट करते हैं तो आपको यादृच्छिक रूप से एक नया IV उत्पन्न करना चाहिए। इसका उद्देश्य एन्क्रिप्टेड डेटा में यादृच्छिकता जोड़ना है, इसलिए एक ही कुंजी के साथ एन्क्रिप्ट किया गया एक ही डेटा, एक अलग सिफर टेक्स्ट का उत्पादन करेगा। –

+0

मान लीजिए कि क्या सर्वर सादे टेक्स्ट को एन्क्रिप्ट करता है, सर्वर को क्लाइंट को IV के साथ एन्क्रिप्टेड टेक्स्ट भेजना पड़ता है? और क्या एक सादे पाठ के रूप में चतुर्थ भेजा जा सकता है? – OnePunchMan

+0

@kaze: यह स्पष्ट नहीं है कि आप किस परिदृश्य के बारे में बात कर रहे हैं - लेकिन हाँ, आप चौथाई सादा पाठ के रूप में भेज सकते हैं। –

संबंधित मुद्दे