का उपयोग कर जावा में एक एक्सएमएल फ़ाइल एन्क्रिप्ट करने का एक उदाहरण क्या कोई मुझे उछाल वाले महल का उपयोग कर जावा में फ़ाइल को एन्क्रिप्ट करने का उदाहरण दिखा सकता है? मैंने bouncycastle.org पर देखा है लेकिन उनके एपीआई का कोई दस्तावेज नहीं मिल रहा है। यहां तक कि सिर्फ यह जानने के लिए कि कौन से वर्गों का उपयोग करना है, मेरे लिए शुरू करने के लिए एक बड़ी मदद होगी!बाउंसी महल
उत्तर
आप किस प्रकार की एन्क्रिप्शन करना चाहते हैं? पासवर्ड-आधारित (पीबीई), सममित, असममित? यह सब कुछ है कि आप Cipher को कैसे कॉन्फ़िगर करते हैं।
आपको किसी भी बाउंसीकास्टल विशिष्ट एपीआई का उपयोग नहीं करना चाहिए, केवल यह एल्गोरिदम प्रदान करता है। यहाँ एक उदाहरण एक स्ट्रिंग एन्क्रिप्ट करने के लिए BouncyCastle PBE सिफर का उपयोग करता है:
import java.security.SecureRandom;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.PBEKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class PBE {
private static final String salt = "A long, but constant phrase that will be used each time as the salt.";
private static final int iterations = 2000;
private static final int keyLength = 256;
private static final SecureRandom random = new SecureRandom();
public static void main(String [] args) throws Exception {
Security.insertProviderAt(new BouncyCastleProvider(), 1);
String passphrase = "The quick brown fox jumped over the lazy brown dog";
String plaintext = "hello world";
byte [] ciphertext = encrypt(passphrase, plaintext);
String recoveredPlaintext = decrypt(passphrase, ciphertext);
System.out.println(recoveredPlaintext);
}
private static byte [] encrypt(String passphrase, String plaintext) throws Exception {
SecretKey key = generateKey(passphrase);
Cipher cipher = Cipher.getInstance("AES/CTR/NOPADDING");
cipher.init(Cipher.ENCRYPT_MODE, key, generateIV(cipher), random);
return cipher.doFinal(plaintext.getBytes());
}
private static String decrypt(String passphrase, byte [] ciphertext) throws Exception {
SecretKey key = generateKey(passphrase);
Cipher cipher = Cipher.getInstance("AES/CTR/NOPADDING");
cipher.init(Cipher.DECRYPT_MODE, key, generateIV(cipher), random);
return new String(cipher.doFinal(ciphertext));
}
private static SecretKey generateKey(String passphrase) throws Exception {
PBEKeySpec keySpec = new PBEKeySpec(passphrase.toCharArray(), salt.getBytes(), iterations, keyLength);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWITHSHA256AND256BITAES-CBC-BC");
return keyFactory.generateSecret(keySpec);
}
private static IvParameterSpec generateIV(Cipher cipher) throws Exception {
byte [] ivBytes = new byte[cipher.getBlockSize()];
random.nextBytes(ivBytes);
return new IvParameterSpec(ivBytes);
}
}
नमक निरंतर नहीं होना चाहिए .. –
आप मिल रहे हैं java.security.InvalidKeyException: अवैध कुंजी आकार रेफरी: http://stackoverflow.com/a/6481658/234110 –
हालांकि यह आपके प्रश्न का अप्रत्यक्ष जवाब है तो शायद आप यह उपयोगी एन्क्रिप्शन को संभालने के लिए jasypt उपयोग करने के लिए मिल जाएगा।
यहाँ कैसे jasypt का उपयोग कर एक फ़ाइल को एन्क्रिप्ट करने का एक उदाहरण है: http://www.jasypt.org/encrypting-configuration.html
और, यहाँ jasypt के लिए एक प्रदाता के रूप में उछाल वाले महल को कॉन्फ़िगर करने का तरीका देखें: http://www.jasypt.org/bouncy-castle.html
सार पहले शायद करने के लिए एक दूसरा 3 पार्टी पुस्तकालय अनिश्चित तृतीय पक्ष पुस्तकालय? एक बहुत अच्छा विचार की तरह लगता है। – jarnbjo
हम jasypt और BouncyCastle का उपयोग कर रहे हैं। Jasypt हाइबरनेट के साथ डेटाबेस कॉलम के पारदर्शी एन्क्रिप्शन और डिक्रिप्शन को संभालता है, और BouncyCastle वास्तविक एन्क्रिप्शन और डिक्रिप्शन करता है। – Omniwombat
आप http://bouncycastle.org/docs/docs1.6/index.html पर जावा दस्तावेज़ देख सकते हैं
आप इस पेज से डाउनलोड कर सकते हैं उदाहरण: http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0764596330,descCd-DOWNLOAD.html
कृपया यहां कुछ विवरण जोड़ें। केवल कुछ लिंक का जिक्र करना भविष्य में टूट सकता है। –
ऐसा न करने पर BountyCastle का उपयोग करने के लिए कोई विशेष कारण है, आप कई अंतर्निहित उदाहरण here के साथ जावा अंतर्निहित क्रिप्टोग्राफ़ी समर्थन पर एक अच्छा ट्यूटोरियल और पृष्ठभूमि जानकारी पा सकते हैं।
यह इंगित करने लायक है कि BouncyCastle केवल एक "प्रदाता" है जो अंतर्निहित क्रिप्टोग्राफी ढांचे (जेसीई) के भीतर काम करता है। इसका अक्सर उपयोग किया जाता है क्योंकि इसमें डिफ़ॉल्ट प्रदाता की तुलना में प्राइमेटिव्स का एक और पूरा सूट होता है। – caf
BouncyCastle "केवल एक प्रदाता" नहीं है। आप अपने मालिकाना एपीआई के माध्यम से बाउंसीकास्टल की क्रिप्टोग्राफी कार्यक्षमता का भी उपयोग कर सकते हैं। आप सही हैं कि बाउंसीकास्टल अतिरिक्त क्रिप्टोग्राफिक एल्गोरिदम प्रदान करता है, लेकिन मैंने शायद ही कभी इनके लिए कोई वास्तविक आवश्यकता देखी है। हालांकि, अक्सर से अधिक, BouncyCastle मानक API और VM एम्बेडेड सुरक्षा प्रदाताओं द्वारा प्रदान की गई कार्यक्षमता के लिए उपयोग किया जाता है। – jarnbjo
Bouncy कैसल जावा कोड उदाहरण खोजने के लिए सबसे अच्छी जगह Bouncy Castle latest release java
ये परीक्षण स्वीट गैर पदावनत कोड है जो आसानी से इस्तेमाल किया जा सकता
- 1. जावा बाउंसी कैसल क्रिप्टोग्राफी - एईएस
- 2. बाउंसी कैसल
- 3. महल गतिशील प्रॉक्सी निर्माण
- 4. बाउंसी कैसल सी #
- 5. का उपयोग कर महल विंडसर
- 6. बाउंसी कैसल पीजीपी डिक्रिप्शन इश्यू
- 7. विंडसर महल निर्मित वस्तु के गुण इंजेक्शन
- 8. महल विंडसर के साथ एकाधिक इंटरफ़ेस इंजेक्शन
- 9. महल-विंडसर में एकाधिक सजावटी पैटर्न
- 10. बाउंसी कैसल एपीआई दस्तावेज कहां है?
- 11. Google मानचित्र में बाउंसी मार्कर v3
- 12. महल विंडसर के साथ एक घटक को ओवरराइट कैसे करें?
- 13. बाउंसी कैसल, आरएसए: एक स्ट्रिंग प्रारूप में कुंजियों को बदलने
- 14. पढ़ना पीईएम आरएसए पब्लिक कुंजी केवल बाउंसी कैसल
- 15. महल या भवन के लिए यादृच्छिक 2 डी मानचित्र कैसे उत्पन्न करें?
- 16. नई बाउंसी कैसल लाइब्रेरी का उपयोग करके PKCS10CertificationRequest से PublicKey कैसे प्राप्त करें?
- 17. जावा प्रोग्राम में बाउंसी कैसल प्रदाता को एकीकृत करने का सबसे अच्छा तरीका क्या है?
- 18. नेट प्रोग्रामेटिकली साइन इन पीकेसीएस # 10 बाउंसी कैसल के साथ अनुरोध
- 19. क्या महल विंडसर कंटेनर 2 इंटरफेस को लागू करने वाले घटक का एक ही उदाहरण लौटा सकता है
- 20. केवल एचटीएमएल के लिए बाउंसी स्क्रॉलिंग को अक्षम करना, लेकिन अतिप्रवाह वाले तत्वों को बनाए रखना: स्क्रॉल
- 21. आरएसए
- 22. मैं समाधान में दूसरी परियोजना में NuGet पैकेज कैसे स्थापित करूं?
- 23. हस्ताक्षरित जार
- 24. जावा में बाउंसीकैसल के साथ पीबीकेडीएफ 2
- 25. उछाल वाली कैसल एपीआई थ्रेड सुरक्षित है?
- 26. जावा में SHA-256 के माध्यम से हैश स्ट्रिंग
- 27. कैसल विंडसर कॉन्फ़िगरेशन
- 28. कैसल विंडसर फ्लुएंट पंजीकरण - क्या उठाता है() करते हैं?
- 29. जावा जेसीई प्रदाताओं - "साफ कमरे कार्यान्वयन" का क्या अर्थ है?
- 30. कैसल वाइंडर सशर्त निर्भरता जोड़ना
शामिल उछाल वाले महल के परीक्षण के कमरे में परीक्षण मामलों के माध्यम से जाना है Cb160 के लिंक के साथ जाएं, और यह भी सुनिश्चित करें कि bouncycastle के लिए स्रोत कोड प्राप्त करना सुनिश्चित करें। एपीआई दस्तावेज ज्यादातर गरीब और अक्सर बहुत गरीब है। हालांकि, स्रोत कोड काफी पठनीय है और मैं अक्सर इसका इस्तेमाल जवाब देने के लिए करता हूं जैसे कि "किस प्रकार के सिफर पैरामीटर रिजेंडेलइंजिन की ज़रूरत है?"। बस प्रासंगिक रिजेंडेल विधि देखें और यह स्पष्ट होगा। –