मुझे Java
क्लाइंट से C#
सर्वर पर एन्क्रिप्टेड डेटा भेजने की आवश्यकता है। अभी मैं सीख रहा हूं कि AES
(आवश्यकता) का उपयोग कर डेटा एन्क्रिप्ट कैसे करें।बीजिंग से एईएस कुंजी बनाने का बेहतर तरीका SecureRandom
byte[] keyStart = "qweroiwejrwoejlsifeoisrn".getBytes(); // Random character string
byte[] toEncrypt = myMessageString.getBytes();
keyGen = KeyGenerator.getInstance("AES");
sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(keyStart);
keyGen.init(128, sr);
SecretKey secretKey = keyGen.generateKey();
byte[] secretKeyByte = secretKey.getEncoded();
SecretKeySpec skeySpec = new SecretKeySpec(secretKeyByte, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
cipher.doFinal(toEncrypt);
एल्गोरिथ्म के बाद से keyStart
मुझे यकीन है कि इस SecureRandom
बिना, C#
में या यहाँ तक कि एक और Java
कार्यक्रम में डीकोड किया जा सकता है, तो नहीं कर रहा हूँ का उपयोग कर एक SecureRandom
उपयोग करता है: यह स्वीकार कर लिया जवाब android encryption/decryption with AES मैं निम्नलिखित कर रहा हूँ के बाद।
क्या यह एन्क्रिप्शन सिर्फ keyStart
की या मैं SecureRandom
मैं अभी भी आदेश को डिक्रिप्ट करने में कुछ और पारित करने के लिए की जरूरत का उपयोग कर रहा है क्योंकि मूल्य जानने के साथ/डिक्रिप्शन काम करता है?
इसके अलावा, क्या ऐसा करने का कोई बेहतर तरीका है या यह ठीक है?