मैं एक यूआरएल स्ट्रिंग के कुछ हिस्सों को खराब करने के लिए एक सरल स्ट्रिंग एन्कोडर को लागू करने की कोशिश कर रहा हूं (उन्हें किसी उपयोगकर्ता द्वारा मक्खन करने से रोकने के लिए)। मैं JCA guide में कोड नमूने के लगभग समान का उपयोग कर रहा है, सिवाय:एन्क्रिप्टेड और एन्कोडेड यूआरएल स्ट्रिंग में लाइन ब्रेक से बचें
- डेस का उपयोग कर (यह मानते हुए यह एईएस की तुलना में थोड़ा तेज है, और एक छोटे कुंजी की आवश्यकता है) और
- Base64 एन/करने के लिए स्ट्रिंग डिकोडिंग सुनिश्चित करें कि यह एक यूआरएल के लिए सुरक्षित रहता है।
कारणों से मैं समझ नहीं पा रहा हूं, आउटपुट स्ट्रिंग लाइनब्रेक्स के साथ समाप्त होती है, जो मुझे लगता है कि काम नहीं करेगा। मैं यह नहीं समझ सकता कि इसका क्या कारण है। कुछ ऐसे संसाधनों पर सुझाव जो कुछ अन्य संसाधनों को पढ़ने के लिए आसान या पॉइंटर्स हैं? मुझे अपने सिर (और ओवरकिल) पर कुछ क्रिप्टोग्राफी संदर्भ मिल रहे हैं, लेकिन एक साधारण आरओटी 13 कार्यान्वयन काम नहीं करेगा क्योंकि मैं एक बड़े चरित्र सेट से निपटना चाहता हूं (और कुछ ऐसा करने के लिए समय बर्बाद नहीं करना चाहता उन अस्पष्ट पात्रों के साथ समस्याएं हैं जिनके बारे में मैंने नहीं सोचा था)।
नमूना इनपुट (कोई लाइन ब्रेक):
http://maps.google.com/maps?q=kansas&hl=en&sll=42.358431,-71.059773&sspn=0.415552,0.718918&hnear=Kansas&t=m&z=7
नमूना आउटपुट (नीचे दिखाया गया है पंक्ति विराम):
GstikIiULcJSGEU2NWNTpyucSWUFENptYk4m5lD8RJl8l1CuspiuXiE9a07fUEAGM/tC7h0Vzus+
jAH6cT4Wtz2RUlBdGf8WtQxVDKZVOzKwi84eQh2kZT9T3KomlnPOu2owJ/2RAEvG+QuGem5UGw==
मेरी एनकोड टुकड़ा:
final Key key = new SecretKeySpec(seed.getBytes(), "DES");
final Cipher c = Cipher.getInstance("DES");
c.init(Cipher.ENCRYPT_MODE, key);
final byte[] encVal = c.doFinal(s.getBytes());
return new BASE64Encoder().encode(encVal);
क्या आपने बस अपने एन्कोडिंग सेशन को वापस करने की कोशिश की और देखें कि क्या यह काम करता हैं ? – Snicolas
वह BASE64Encoder कक्षा कहां से आती है? – leonbloy
@leonbloy मैं sun.misc.BASE64Decoder आयात कर रहा था, जिसे मुझे [इस पोस्ट] के लिए धन्यवाद मिला है (http://stackoverflow.com/questions/2267036/work-sun-misc-base64encoder-decoder-for-getting- बाइट) एक अच्छा विचार नहीं है। – milletron