c# - Java encode and .NET decode -
एन्क्रिप्शन जावा में है:
स्ट्रिंग नमक = "DC14DBE5F917C7D03C02CD5ADB88FA41"; स्ट्रिंग पासवर्ड = "25623 एफ 17 -0027-3 बी 82-बीबी 4 बी-बी 7 डीडी 60 डीसीडीसी 9 बी"; चार [] पासवर्डचरों = नए चार [password.length ()]; Password.getChars (0, password.length (), पासवर्डचरों, 0); सीक्रेटके फैक्टर कारखाना = सीक्रेटकेएफ़ैक्टर। गैस्ट इन्स्टेंस ("पीबीकेडीएफ 2 विथ एचएमएसीएएचए 1"); कुंजी स्पीक स्पेक = नया पीबीईकेएसपीईसी (पासवर्डचर्स, नमक। जेइटबेट्स (), 2, 256); गुप्तकी sKey = कारखाने.generate सिक्रेट (कल्पना); बाइट [] कच्चे = _sKey.getEncoded (); स्ट्रिंग toEncrypt = "एन्क्रिप्टेड होने वाला पाठ।"; साइफर साइफर = साइफर। गेट इंस्टेंस ("एईएस / सीबीसी / पीकेसीएस 7 पेडिंग", "बीसी"); साइफर। इट (साइफर। एनसीआरवाईपी_एमओडीई, स्की); एल्गोरिथ्म पैरामेट्स पैराम्स = साइफर.गेट पैरामीटर (); बाइट [] initVector = params.getParameterSpec (IvParameterSpec.class) .getIV (); बाइट [] एन्क्रिप्टेड बॉइट्स = साइफर .डोफनल (toEncrypt.getBytes ());
जबकि डिक्रिप्शन सी #:
स्ट्रिंग हैश एल्गोरिथ्म = "SHA1" में है; इंट पासवर्ड अंतरण = 2; Int कुंजीसिज़न = 256; बाइट [] नमकवॉल्यूइबिट्स = एन्कोडिंग.एएससीआईआई.गेटबाइट्स (नमक); बाइट [] सिफरटेक्स्टबाइट्स = कन्वर्ट.फॉंबबेस 64 स्ट्रिंग (सिफर टेक्स्ट); पासवर्डड्राइवबाइट्स पासवर्डडीबी = नया पासवर्डड्राइवइबिट्स (पासवर्ड, नमकवॉल्यूइट्स, हैश एल्गोरिथ्म पासवर्ड इत्यादि); बाइट [] keyBytes = passwordDB.GetBytes (keySize / 8); रीजेंडेल प्रबंधित सममितिक = नया रिजेंडेल प्रबंधित (); SymmetricKey.Mode = सिफरमोड.सीबीसी; ICryptoTransform decryptor = symmetricKey.CreateDecryptor (कुंजीबाइट्स, initVector); मेमोरीस्ट्रीम मेमोरीस्ट्रीम = नई मेमोरीस्ट्रीम (सिफरटेक्स्टबिट्स); क्रिप्टोस्ट्रीम क्रिप्टोस्ट्रीम = नया क्रिप्टोस्ट्रीम (मेमोरीस्ट्रीम, डिक्रिप्टर, क्रिप्टोस्ट्रीम मोड। रीड); बाइट [] सादा टेक्स्टबाइट्स = नया बाइट [साइफर टेक्स्टब्लैट्स.लाइन]; Int decryptedByteCount = cryptoStream.Read (सादा पाठ, 0, सादा पाठ। लांघ); memoryStream.Close (); cryptoStream.Close (); स्ट्रिंग plaintext = एन्कोडिंग.UTF8.GetString (सादा टेक्स्टबाइट्स, 0, डिक्रिप्टबाइटकाउंट); P>
यह आमतौर पर इंगित करता है कि डिक्रिप्शन विफल हो गया है मेरा सुझाव है कि आप मुख्य पीढ़ी के कार्यों के उत्पादन की जाँच करें, यह देखने के लिए कि क्या आप वास्तव में एक ही कुंजी का प्रयोग कर रहे हैं उदाहरण के लिए, मैं नोटिस करता हूं कि जावा कोड का अर्थ है कि आप SHA1- आधारित एचएमएसी का उपयोग कर रहे हैं, जबकि एनएटीटी कोड का अर्थ है कि आप कुंजी उत्पन्न करने के लिए एक अनकीकृत SHA1 हैश का उपयोग कर रहे हैं।
वैकल्पिक रूप से, यह हो सकता है पैडिंग में एक बेमेल मुझे नहीं पता कि आप कहां स्पष्ट रूप से पैडिंगमोड
को पीकेसीएस 7 को नेट कोड में सेट कर रहे हैं।
Comments
Post a Comment