java - फ़ाइलों को ज़िपित करने के लिए उपयोग करने के लिए एक मुफ्त लाइब्रेरी पर सिफारिशें




encryption zip (6)

मुझे फ़ाइल को ज़िप और पासवर्ड-सुरक्षित करने की आवश्यकता है। क्या इसके लिए कोई अच्छी (मुफ्त) लाइब्रेरी है?

इसे किसी तृतीय पक्ष द्वारा खोला जाना आवश्यक है, इसलिए पासवर्ड सुरक्षा को मानक टूल के साथ काम करने की आवश्यकता है।


क्या इसके लिए कोई अच्छी (मुफ्त) लाइब्रेरी है?

java.util.zip ज़िपिंग करेगा, लेकिन यह पासवर्ड नहीं करेगा। और नहीं, मुझे किसी भी मुक्त व्यक्ति की जानकारी नहीं है। एक डेवलपर सीट के लिए मैंने देखा chillkat $ 150 है।


7-ज़िप में अपने कमांड लाइन मोड में पासवर्ड जोड़ने का विकल्प है। शायद आप इसे परिणाम प्राप्त करने के लिए इसे निष्पादित कर सकते हैं (और इसमें भी एक अच्छा संपीड़न राशन है)।

दोष: बाह्य प्रक्रिया, पोर्टेबल बनाने में कठोर (भले ही 7-ज़िप पोर्टेबल है), वितरण लाइसेंस के बारे में सुनिश्चित नहीं है।

ध्यान दें कि InfoZip की ज़िप उपयोगिता, अत्यधिक पोर्टेबल भी पासवर्ड का समर्थन करती है।


अतिरिक्त जानकारी: मैं थोड़ी अधिक गुस्से में और वास्तव में, यह एक आम सवाल है, और ऐसा प्रतीत होता है कि कोई मुफ्त समाधान नहीं है (अभी तक?)।

अब, ज़िप एन्क्रिप्शन का मानक एल्गोरिदम अच्छी तरह परिभाषित है: .ZIP फ़ाइल प्रारूप पर PKWARE का एप्लिकेशन नोट देखें। यह एन्क्रिप्टेड स्ट्रीम पर किया गया एक एन्क्रिप्शन प्रतीत होता है। अगर किसी को कोडिंग की तरह लगता है ...

अब, मुझे आश्चर्य है कि क्यों सूर्य ने इसे अपनी पुस्तकालय में शामिल नहीं किया? मानक की कमी? पेटेंट / कानूनी मुद्दा? प्रयोग करने योग्य होने के लिए बहुत कमजोर?


आप ज़िप फ़ाइल को संभालने के लिए एक शुद्ध जावा लाइब्रेरी Zip4j आज़मा सकते हैं। यह पीकेवेयर और एईएस एन्क्रिप्शन विधियों के एन्क्रिप्शन / डिक्रिप्शन का समर्थन करता है।

प्रमुख विशेषताऐं:

  • एक ज़िप फ़ाइल से फ़ाइलें निकालें, जोड़ें, निकालें, अपडेट करें, निकालें
  • पासवर्ड सुरक्षित ज़िप फ़ाइलों को पढ़ें / लिखें
  • एईएस 128/256 एन्क्रिप्शन का समर्थन करता है
  • मानक ज़िप एन्क्रिप्शन का समर्थन करता है
  • Zip64 प्रारूप का समर्थन करता है
  • स्टोर (कोई संपीड़न) और Deflate संपीड़न विधि का समर्थन करता है
  • स्प्लिट ज़िप फ़ाइलों से फ़ाइलें बनाएं या निकालें (उदा: z01, z02, ... ज़िप)
  • यूनिकोड फ़ाइल नाम का समर्थन करता है
  • प्रगति मॉनिटर

लाइसेंस:


बहुत खोज के बाद, मुझे तीन दृष्टिकोण मिल गए हैं:

स्रोत कोड का एक स्वतंत्र रूप से उपलब्ध सेट, एक फ़ाइल ज़िप के लिए उपयुक्त है। हालांकि, कोई लाइसेंस नहीं है। उपयोग AesZipOutputStream.zipAndEcrypt (...) है। http://merkert.de/de/info/zipaes/src.zip ( https://forums.oracle.com/forums/thread.jspa?threadID=1526137 )

अद्यतन: यह कोड अब अपाचे लाइसेंस प्राप्त है और http://code.google.com/p/winzipaes/ पर जारी किया गया है। यह मेरे लिए काम करता है (ज़िप में एक फाइल), और जावा के ओपन सोर्स लाइब्रेरी में अच्छी तरह से एक छेद भरता है।

एक वाणिज्यिक उत्पाद (लेखन के समय $ 500)। मैं यह सत्यापित नहीं कर सकता कि यह काम करता है, क्योंकि उनके परीक्षण लाइसेंस दृष्टिकोण जटिल हैं। यह एक पोर्टेड .NET ऐप भी है: http://www.nsoftware.com/ipworks/zip/default.aspx

एक वाणिज्यिक उत्पाद (लेखन के समय $ 2 9 0)। केवल Wnidows के लिए उपयुक्त है क्योंकि यह एक डीएलएल का उपयोग करता है: http://www.example-code.com/java/zip.asp


यदि आप बेहतर उपयोग परिदृश्य देते हैं तो अन्य विकल्प भी हैं।

  1. क्या आपको ज़िप ज़िप उपकरण द्वारा ज़िप खोलने की आवश्यकता है जो ज़िप पासवर्ड को संभाल सकता है?
  2. पिछले जैसा ही सवाल है कि क्या आप इस ज़िप को बाहरी इकाई में पास करने जा रहे हैं जिसे ज़िप खोलना है?
  3. क्या यह केवल आंतरिक है और आप बस ज़िप की सामग्री को सुरक्षित रखना चाहते हैं?

3 के लिए आप ज़िप की स्ट्रीम सामग्री को सामान्य फ़ाइल के रूप में एन्क्रिप्ट करने के लिए जावा का उपयोग कर सकते हैं, शायद फ़ाइल एक्सटेंशन को .ezip या somesuch में बदलने के लिए सबसे अच्छा है।

1 और 2 के लिए आप उल्लिखित chillkat समाधान का उपयोग कर सकते हैं, या समकक्ष। हालांकि ध्यान रखें कि चिलकट शुद्ध जावा समाधान नहीं है, यह जेएनआई का उपयोग करता है।





zip