2013-01-07 43 views
20

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

byte[] encodedKey  = Base64.decode(stringKey); 
SecretKey originalKey = SecretKeySpec(encodedKey, 0, encodedKey.length, "AES") 

मिली:: सबसे होनहार प्रयास इस एक था Converting Secret Key into a String and Vice Versa

मैं आयात javax.crypto.spec.SecretKeySpec उपयोग कर रहा हूँ, इसलिए SecretKeySpec के लिए निर्माता को सही ढंग से इस्तेमाल किया जाना चाहिए, कम से कम चर्चा करते हुए http://docs.oracle.com/javase/1.5.0/docs/api/javax/crypto/spec/SecretKeySpec.html पर।

फिर भी मुझे हमेशा "विधि गुप्तKeySpec के लिए अपरिभाषित है ... [वर्ग नाम]" - जो मुझे अभी नहीं मिलता है।

मुझे लगता है कि यह सिर्फ कुछ मामूली गलती है, लेकिन मैं इसे समझ नहीं सकता। क्या कोई मेरी मदद कर सकता है?

+1

क्या आपके पास कन्स्ट्रक्टर के अंत में अर्ध-कॉलन है? :) – asteri

उत्तर

37

आपको कन्स्ट्रक्टर को कॉल करने और ऑब्जेक्ट बनाने के लिए new कीवर्ड का उपयोग करने की आवश्यकता है।

SecretKey originalKey = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES"); 

जब आप new बिना इसे कहते हैं की कोशिश, संकलक सोचता है कि यह एक तरीका है कि आप उस वर्ग के भीतर परिभाषित किया है, इसलिए अपने त्रुटि संदेश हो सकता है।

+0

ओएमजी, धन्यवाद, निश्चित रूप से स्क्रीन के सामने बहुत लंबे समय से बैठा है ... –

+0

:) हम सभी को होता है। – asteri

+0

मुझे पता है, अभी भी - यह जानना अच्छा है कि अकेले न रहें ;-) फिर से धन्यवाद! –

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

  • कोई संबंधित समस्या नहीं^_^