2009-05-23 17 views
5

का उपयोग करके एईएस/सीबीसी/पीकेसीएस 5 पैडिंग सिफर इंस्टेंस का उपयोग कर रहा है और जावा में डिक्रिप्शन का उपयोग कर रहा हूं। मैं जावा में ऊपर से एन्क्रिप्टेड ब्लैकबेरी का उपयोग करके डेटा को कैसे डिक्रिप्ट कर सकता हूं। एईएस/सीबीसी/PKCS5Padding का उपयोग कर ब्लैकबेरीब्लैकबेरी

धन्यवाद के साथ

decrypting डेटा बापी

उत्तर

2

मुझे लगता है कि Bouncy Castle Library कि समर्थन करता है। वे कुछ छोटे ट्यूटोरियल भी प्रदान करते हैं।

0

बाउंसी महल में ऐसा करने के लिए एक शानदार पुस्तकालय है। मुख्य समस्या यह होगी कि एक सुरक्षित तरीके से कुंजी कैसे प्राप्त करें। मैंने पाया कि .NET और Java असंगत तरीकों से चाबियों को क्रमबद्ध करते हैं, इसलिए मैं महत्वपूर्ण हस्तांतरण की सुविधा के लिए दोनों तरफ बाउंसी कैसल का उपयोग कर समाप्त हुआ, क्योंकि इसे सुरक्षा के लिए आरएसए का उपयोग करके स्थानांतरित किया गया था।

5

मैं ब्लैकबेरी एपीआई का उपयोग करने की सलाह देता हूं (बाउंसी कैसल काम करेगा, लेकिन जटिल चीजें क्यों?)।

net.rim.crypto पैकेज का उपयोग करें - आप सभी सममित एन्क्रिप्शन का उपयोग कर रहे हैं, इसलिए आपको डिवाइस पर चलाने के लिए केवल मानक RIM signing keys की आवश्यकता होगी ($ 20 और 2-3 दिन प्राप्त करने के लिए) - इस बीच आप कर सकते हैं सिम्युलेटर के साथ सब कुछ करो।

असल में आप एक पीकेसीएस 5 अनफॉर्मेटरइंजिन बनाना चाहते हैं जो एक सीबीसीडीक्रिप्टर एंजिन को लपेटता है जो एईएसडीक्रिप्टर एंजिन को लपेटता है। संभवतः ब्लॉकडिक्रिप्टर में सबकुछ लपेटें ताकि आप इनक्रीमस्ट्रीम में इलाज कर सकें। की तरह (और यह जबकि बाद से मैं यह कर दिया है एक छोटे से हो गया है, तो यह लिखा के रूप में 100% काम नहीं कर सकता) कुछ:

InputStream encryptedInput; // if you have a byte[] of data, use a ByteArrayInputStream 
AESKey key = new AESKey(<your key data as a byte[]>) 
InitializationVector iv = new InitializationVector(<your iv data as a byte[]>) // of course you need to know your IV since you're doing CBC encryption 

BlockDecryptor decryptor = new BlockDecryptor(
    new PKCS5UnformatterEngine(
     new CBCDecryptorEngine(
     new AESDecryptorEngine(key), 
     iv 
    ) 
    ) 
); 

// then decryptor acts as an InputStream which gives you your decrypted, unpacked data 

decryptor.read(buffer); // buffer will contain decrypted, unpacked data 
+0

मेरा की तुलना में, लेकिन मेरे बचाव में मैं नहीं देखा एक बेहतर जवाब है कि जब तक मैं तुम्हारा पढ़ता हूं तब तक ब्लैकबेरी टैग। :-) – wds

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