जिप बम कैसे बनता है?


131

ज़िप बमों के बारे में इस सवाल ने मुझे स्वाभाविक रूप से इस विषय पर विकिपीडिया पृष्ठ पर पहुंचा दिया। लेख में 45.1 kb ज़िप फ़ाइल के एक उदाहरण का उल्लेख किया गया है जो 1.3 एक्सैबाइट्स को विघटित करता है।

पहली बार ऐसी फाइल बनाने के लिए किन सिद्धांतों / तकनीकों का उपयोग किया जाएगा? मैं वास्तव में ऐसा नहीं करना चाहता हूं, इसमें शामिल अवधारणाओं के स्पष्टीकरण के सरलीकृत "कैसे-सामान-काम" में अधिक रुचि है।

ps

लेख में जिप फ़ाइलों की 9 परतों का उल्लेख किया गया है, इसलिए यह शून्य के झुंड का एक साधारण मामला नहीं है। क्यों 9, प्रत्येक में 10 फाइलें क्यों?


5
@ आपकी शिकायत मान्य नहीं है। न केवल ओपी ने पूछा कि यह कैसे काम करता है, पोस्ट किए गए लेख में कुछ भी नहीं कहता है कि यह एंटी-वायरस को अक्षम करने के उद्देश्य के लिए है। इसके विपरीत, ऐसा लगता है कि लेख का जोर एक डॉस-शैली का हमला है जिसमें केवल एंटी-वायरस अक्षम करने का उल्लेख है।
सैन जैसिंटो

2
मुद्दा यह है कि ओपी एक विशिष्ट फ़ाइल का उल्लेख कर रहा था, जिसमें नेस्टेड अभिलेखागार होते हैं, न कि एक विशाल संपीड़ित फ़ाइल।
माइकल बोर्गवर्ड्ट

1
मुझे लगता है कि माइकल का अधिकार है, वह बताता है कि "पीएस" में वर्णित फ़ाइल कैसे बनाई जाए, और बाकी सभी नहीं। हालाँकि, "PS" को एक एडिट के रूप में जोड़ा गया था, इसलिए उन उत्तरों को उस समय गलत तरीके से गलत नहीं किया जा सकता था, जब वे दिए गए थे। उन्होंने सोचा कि "ऐसी फाइल" का मतलब "किसी भी फाइल का मतलब है जो 1.3 एक्सबाइट्स तक घटता है", जब यह पता चलता है कि इसका मतलब "फाइल को लिंक किए गए लेख में वर्णित एक की तरह संरचित" था।
स्टीव जेसप

1
@onebyone मैं पूरी तरह से सहमत हूं। मुझे नहीं लगता कि ऐसी परिस्थिति में एक नीचता उचित है।
सैन जैसिंटो

4
मुझे लगता है कि यह निर्भर करता है कि क्या आप "इस सवाल का सबसे अच्छा जवाब नहीं है" या "आप एक मूर्ख हैं और जीने के लायक नहीं हैं" या बीच में ठिकाने लगाने का मतलब है। व्यक्तिगत रूप से, मेरा मतलब है कि मुझे अपना उत्तर फिर से पढ़ना चाहिए और देखना चाहिए कि क्या इसमें स्पष्ट रूप से कुछ भी गलत नहीं है जिसे मुझे ठीक करना चाहिए। लेकिन, अब मैं काफी खुश हूं कि मैं इससे असहमत हूं और अपना जवाब नहीं बदलूंगा, अगर मुझे लगता है कि मेरा जवाब कुछ योगदान देता है। और मैं वैसे भी पूरी मतदान प्रक्रिया के बारे में काफी असंबद्ध हो गया हूं, अब यह स्पष्ट है कि मैं जॉन स्कीट को कभी नहीं पकड़ पाऊंगा ;-)
स्टीव जेसप को

जवाबों:


92

विकिपीडिया पृष्ठ से उद्धृत:

जिप बम का एक उदाहरण फ़ाइल 45.1.zip है जो कि 45.1 किलोबाइट संपीड़ित डेटा है, जिसमें 10 के सेट में नेस्टेड ज़िप फ़ाइलों की नौ परतें होती हैं, प्रत्येक निचले परत के आर्काइव में 1.30 गीगाबाइट फ़ाइल होती है जिसमें कुल 1.30 असम्पीडित डेटा होता है। ।

इसलिए आपको बस एक ही 1.3GB की एक पूरी फ़ाइल चाहिए, जो कि एक जिप फाइल में कम्प्रेस करे, 10 कॉपी बनाये, एक जिप फाइल में पैक करें और इस प्रक्रिया को 9 बार दोहरायें।

इस तरह, आपको एक फ़ाइल मिलती है, जो पूरी तरह से असम्पीडित होने पर, आपको उस राशि से शुरू करने की आवश्यकता के बिना डेटा की एक बेतुकी मात्रा पैदा करती है।

इसके अतिरिक्त, नेस्टेड अभिलेखागार वायरस स्कैनर (इन "बम" का मुख्य लक्ष्य) जैसे कार्यक्रमों के लिए बहुत कठिन बना देते हैं और "बहुत बड़े" होने वाले अभिलेखागार को अस्वीकार करने से इनकार करते हैं, क्योंकि अंतिम स्तर तक डेटा की कुल मात्रा होती है। इतना नहीं, आप "नहीं" देखते हैं कि जब तक आप उस स्तर तक नहीं पहुंचते हैं, तब तक निम्नतम स्तर पर फाइलें कितनी बड़ी हैं, और प्रत्येक व्यक्तिगत फाइल "बहुत बड़ी" नहीं है - केवल बड़ी संख्या समस्याग्रस्त है।


2
नहीं किया जा सकता है ... एक बार जब आप नीचे की ओर शून्य की फ़ाइल ज़िप करते हैं, तो परिणामी ज़िपित फ़ाइल लगभग अगली परत के लिए संकुचित होने वाली नहीं है।
pufferfish

16
आह, लेकिन प्रत्येक स्तर पर, आपके पास दस समान फाइलें हैं - जो फिर से अच्छी तरह से संपीड़ित करता है। हालांकि जिप क्रॉस-फाइल रिडंडेंसी का शोषण नहीं करता है, लेकिन दस व्यक्तिगत रूप से संकुचित समान फाइलों वाले संग्रह में संभवतः शोषण करने के लिए अगली परत के लिए बहुत अधिक अतिरेक है।
माइकल बोर्गवर्ड्ट

10
बिंदु यह नहीं है कि छोटी से छोटी संभव फ़ाइल से अधिकतम डेटा कैसे उत्पन्न किया जाए - यह बिंदु वायरस-स्कैनर्स के प्रयासों को बहुत बड़े अभिलेखागार से बचाने के लिए पराजित करता है।
माइकल बोर्गवर्ड्ट

2
यह विकिपीडिया पर लेख का जोर नहीं है। यह एक डॉस-शैली के हमले को धक्का देता है।
सैन जैसिंटो

2
लेकिन फ़ाइलों को पुनरावर्ती रूप से नहीं निकाला जाता है ... पीड़ित को इसे काम करने के लिए उप ज़िप फ़ाइलों को निकालना जारी रखना चाहिए ... इसके आसपास कोई भी कार्य।
मनोज

46

शून्य की एक 1.3 एक्साबाइट फ़ाइल बनाएँ।

राइट क्लिक> कंप्रेस (ज़िप्ड) फोल्डर को भेजें।


22
आप व्यंग्य "स्माइली" भूल गए।
tvanfosson

1
यह फ़ाइल आकार सीमाओं के कारण अधिकांश फ़ाइल सिस्टम और संपीड़न एल्गोरिदम के साथ सबसे अधिक असंभव होगा। हालाँकि, संपीड़ित संग्रह में नेस्टिंग फ़ाइल (और संग्रह में अधिक नेस्टेड अभिलेखागार डाल रहा है, यदि संपीड़न एल्गोरिथ्म का कुल आकार सीमा है) आपको इन सीमाओं को बायपास करने की अनुमति देता है।
ब्लक्ष्ट

133
1 की 1.3 एक्साबाइट फ़ाइल बनाना चाहिए। वे 0 के :) की तुलना में बहुत अधिक पतले हैं
क्विन विल्सन

33
@ क्विन - यही कारण है कि (initally
fatter

1
यह आपको एक> 1gb ज़िप फ़ाइल देता है जब तक कि मैं गलत नहीं हूँ
क्रिस S

36

यह लिनक्स के तहत निम्न कमांड का उपयोग आसानी से किया जाता है:

dd if=/dev/zero bs=1024 count=10000 | zip zipbomb.zip -

उस संख्या की गणना करें जिसे आप KB की संख्या से संपीड़ित करना चाहते हैं। ऊपर दिया गया उदाहरण 10MiB ज़िप बम बनाता है (बम का ज़्यादातर हिस्सा नहीं, लेकिन यह प्रक्रिया दिखाता है)।

आपको सभी असम्पीडित डेटा को संग्रहीत करने के लिए हार्ड डिस्क स्थान की आवश्यकता नहीं है।


8
लेकिन आपको असम्पीडित डेटा को संपीड़ित करने के लिए कंप्यूटिंग शक्ति की आवश्यकता है, यह अभी भी असम्पीडित डेटा के आकार में O (n) है ।
टन सेफ़

2
हां, जैसा कि यहां अन्य सभी उत्तर हैं।
थोमी सेप

6
माइकल Borgwardt का उत्तर O (लॉग एन) असम्पीडित डेटा के आकार में है।
स्टीव जेसप

1
लगभग, वैसे भी। प्रक्रिया का प्रत्येक दोहराना "आर्काइव हेडर से स्ट्रिप, 10 बार संपीड़ित फ़ाइल प्रविष्टि को डुप्लिकेट करें, संग्रह हेडर को बदलें, संपीड़ित" 1 से जिप नेस्टिंग के स्तर को बढ़ाता है, पिछले चरण से संपीड़ित डेटा के आकार के लिए आनुपातिक लेता है। , 10 से असम्पीडित डेटा के आकार को गुणा करता है, और यदि यह संकुचित डेटा के आकार को बढ़ाता है, तो निश्चित रूप से रैखिक कारक की तरह कुछ भी ऐसा नहीं करता है।
16:17 पर स्टीव जेसप

3
तो बस एक परीक्षण के रूप में, मैं ज़िप -9 1.3 जीबी शून्य है। परिणाम एक 1.3M फ़ाइल है। मैंने इसे 10 बार दोहराया है (ज़िप हेडर के साथ खिलवाड़ करने से परेशान नहीं किया जा सकता है, इसलिए परिणाम एक ज़िप बम के रूप में काम नहीं करेगा, लेकिन सिद्धांत को दिखाता है) 13M फ़ाइल देने के लिए, जो ज़िप -9 से 34383 सेंट्स तक संपीड़ित करता है। तो दोहराव कदम वास्तव में फ़ाइल को छोटा बनाता है, क्योंकि अपस्फीति केवल एक निश्चित अधिकतम आकार के टोकन का समर्थन करता है। अगला चरण परिणाम 18453, फिर 19012, 19312, 19743, 20120, 20531, 20870।
स्टीव

10

नीचे विंडोज के लिए है:

कॉन्सेप्ट के सिक्योरिटी फोकस प्रूफ से (NSFW!), यह 16 फ़ोल्डरों के साथ एक ज़िप फ़ाइल है, प्रत्येक में 16 फ़ोल्डर्स हैं, जो इस तरह से चलता है (42 ज़िप फ़ाइल नाम है):

\ 42 \ lib 0 \ पुस्तक 0 \ अध्याय 0 \ doc 0 \ 0.dll
...
\ 42 \ lib F \ पुस्तक F \ Chapter F \ doc F \ 0.dll

मैं शायद इस आंकड़े के साथ गलत हूं, लेकिन यह 4 ^ 16 (4,294,967,296) निर्देशिकाओं का उत्पादन करता है। क्योंकि प्रत्येक निर्देशिका को एन बाइट्स के आवंटन स्थान की आवश्यकता होती है, इसलिए यह बहुत बड़ा है। अंत में dll फ़ाइल 0 बाइट्स है।

\42\lib 0\book 0\chapter 0\doc 0\0.dllआवंटन स्थान के 4 जीबी में अकेले पहले निर्देशिका को अनजिप किया गया ।


27
मुझे लगता है कि उनकी नग्न महिलाएं सुरक्षा अनुसंधान कर रही थीं।
जेम्स मैकमोहन

3
ज़िप nsfw था। एक बड़ा आतंक लाल अलार्म बंद हो जाएगा और एक पिंजरा आपकी मेज के चारों ओर की छत से नीचे गिर जाएगा
क्रिस एस।

4
यदि हर वायरस फाइल पर एचआर के साथ एक साक्षात्कार में परिणाम होता है, तो या तो आपको वायरस स्कैनर की आवश्यकता नहीं है, या फिर आपको अपने एचआर विभाग की आवश्यकता नहीं है। उनमें से एक व्यवसाय में योगदान नहीं कर रहा है ;-)
स्टीव जेसप

2
NSFW भी हो सकता है क्योंकि एक नेटवर्क वायरस स्कैनर इसे जांचना चाहता है - और ऐसा करने के लिए इसे निकाल सकता है।
माइकल Stum

5
वायरस स्कैनर को बस इसे संदिग्ध होना चाहिए (जिसके परिणामस्वरूप इसे सुरक्षित रूप से अवरुद्ध किया जा सकता है, या आपके परिणामस्वरूप वायरस को स्थापित करने की कोशिश करने के लिए अनजाने में रिपोर्ट किया जा सकता है)। यदि बम वास्तव में फट जाता है, तो आपके आईटी विभाग ने कुछ मूल्यवान सीखा है - उन्हें एक बेहतर वायरस स्कैनर की आवश्यकता है।
स्टीव जेसोप

8

गंभीर उत्तर:

(बहुत मूल रूप से) संपीड़न दोहराए जाने वाले पैटर्नों पर निर्भर करता है, इसलिए ज़िप फ़ाइल में डेटा का प्रतिनिधित्व कुछ इस तरह होगा

0x100000000000000000000000000000000000  
(Repeat this '0' ten trillion times)

बहुत छोटी ज़िप फ़ाइल, लेकिन जब आप इसका विस्तार करते हैं तो बहुत बड़ा होता है।


1
यह आगे भी संपीड़ित किया जा सकता है, वास्तव में: 0x1 (0x35) (अर्थात, दूसरा 0 35 बार दोहराया जाता है ताकि यह आपकी टिप्पणी के लिए विस्तारित हो)
माइकल

5

एक व्यावहारिक सेटिंग में एक बनाने के लिए (यानी आप पर हार्ड एक्सट्रैब पर 1.3 एक्साबाइट फ़ाइल बनाने के बिना), आपको शायद बाइनरी स्तर पर फ़ाइल प्रारूप सीखना होगा और कुछ लिखना होगा जो आपकी इच्छित फ़ाइल की तरह अनुवाद करेगा, पोस्ट- संपीड़न।


5

लेख में जिप फ़ाइलों की 9 परतों का उल्लेख किया गया है, इसलिए यह शून्य के झुंड का एक साधारण मामला नहीं है। क्यों 9, प्रत्येक में 10 फाइलें क्यों?

सबसे पहले, विकिपीडिया लेख वर्तमान में 16 फ़ाइलों के साथ 5 परतों को कहता है। निश्चित नहीं है कि विसंगति कहां से आती है, लेकिन यह सब प्रासंगिक नहीं है। असली सवाल यह है कि पहली जगह में घोंसले के शिकार का उपयोग क्यों करें।

DEFLATE, ज़िप फाइलों के लिए एकमात्र समर्थित सहायक विधि * है, जिसका अधिकतम संपीड़न अनुपात 1032 है। इसे 1-3 बाइट्स के किसी भी दोहराए जाने वाले अनुक्रम के लिए asymptotically प्राप्त किया जा सकता है। कोई फर्क नहीं पड़ता कि आप एक ज़िप फ़ाइल में क्या करते हैं, जब तक कि यह केवल DEFLATE का उपयोग कर रहा है, अनपैक्ड आकार मूल ज़िप फ़ाइल के आकार का अधिकतम 1032 गुना होगा।

इसलिए, वास्तव में अपमानजनक संपीड़न अनुपात को प्राप्त करने के लिए नेस्टेड ज़िप फ़ाइलों का उपयोग करना आवश्यक है। यदि आपके पास संपीड़न की 2 परतें हैं, तो अधिकतम अनुपात 1032 ^ 2 = 1065024 हो जाता है। 3 के लिए, यह 1099104768 है, और इसी तरह। 42.zip में उपयोग की जाने वाली 5 परतों के लिए, सैद्धांतिक अधिकतम संपीड़न अनुपात 1170572956434432 है। जैसा कि आप देख सकते हैं, वास्तविक 42.zip उस स्तर से बहुत दूर है। इसका एक हिस्सा ज़िप प्रारूप का ओवरहेड है, और इसका हिस्सा यह है कि उन्होंने सिर्फ परवाह नहीं की।

अगर मुझे अनुमान लगाना था, तो मैं कहूंगा कि 42.zip का गठन केवल एक बड़ी खाली फ़ाइल बनाने के द्वारा किया गया था, और बार-बार इसे ज़िप करना और कॉपी करना। प्रारूप की सीमाओं को धक्का देने या संपीड़न या किसी भी चीज को अधिकतम करने का कोई प्रयास नहीं है - उन्होंने सिर्फ मनमाने ढंग से प्रति परत 16 प्रतियां लीं। बिंदु यह था कि बिना अधिक प्रयास के एक बड़ा पेलोड बनाया जाए।

नोट: अन्य संपीड़न प्रारूप, जैसे bzip2, बहुत अधिक, बहुत अधिक अधिकतम संपीड़न अनुपात प्रदान करते हैं। हालाँकि, अधिकांश जिप पार्सर उन्हें स्वीकार नहीं करते हैं।

PS यह एक ज़िप फ़ाइल बनाना संभव है जो खुद की एक प्रति (एक क्वीन) को अनज़िप करेगा। आप एक ऐसी भी बना सकते हैं जो स्वयं की कई प्रतियों को खोल देती है। इसलिए, यदि आप किसी फ़ाइल को हमेशा के लिए पुनरावृत्ति करते हैं, तो अधिकतम संभव आकार अनंत है। एकमात्र सीमा यह है कि प्रत्येक पुनरावृत्ति पर यह अधिकतम 1032 तक बढ़ सकता है।

पीपीएस 1032 का आंकड़ा मानता है कि जिप में फाइल डेटा असंतुष्ट हैं। जिप फाइल फॉर्मेट का एक क्विकर्क यह है कि इसमें एक सेंट्रल डायरेक्टरी है जो आर्काइव और फाइल को फाइल डेटा में लिस्ट करती है। यदि आप एक ही डेटा की ओर इशारा करते हुए कई फ़ाइल प्रविष्टियाँ बनाते हैं, तो आप बिना किसी नेस्टिंग के भी बहुत अधिक कम्प्रेशन अनुपात प्राप्त कर सकते हैं, लेकिन ऐसी ज़िप फ़ाइल को पार्सर्स द्वारा अस्वीकार किए जाने की संभावना है।


4

ज़िपबॉम्ब (या गज़बॉम्ब) बनाने का एक अच्छा तरीका यह है कि आप जिस द्विआधारी प्रारूप को लक्षित कर रहे हैं, उसे जानें। अन्यथा, भले ही आप स्ट्रीमिंग फ़ाइल का उपयोग करें (उदाहरण के लिए उपयोग कर /dev/zero) आप स्ट्रीम को संपीड़ित करने के लिए आवश्यक कंप्यूटिंग शक्ति द्वारा सीमित रहेंगे।

एक gzip बम का एक अच्छा उदाहरण: http://selenic.com/googolplex.gz57 (संपीड़न के कई स्तरों के बाद फ़ाइल में एक संदेश अंतर्निहित है, जिसके परिणामस्वरूप बहुत बड़ी फाइलें हैं)

मज़ा है कि संदेश खोजने :)


2

शायद, यूनिक्स पर, आप शून्य की एक निश्चित राशि को सीधे एक ज़िप प्रोग्राम या कुछ में पाइप कर सकते हैं? यूनिक्स के बारे में बताने के लिए पर्याप्त नहीं है कि आप यह कैसे करेंगे। इसके अलावा आपको शून्य के स्रोत की आवश्यकता होगी, और उन्हें एक ज़िप में पाइप करें जो स्टड या कुछ और से पढ़े ...


वास्तविक प्रश्न की अवहेलना के लिए डाउनवोट किया गया है, जिसमें एक विशिष्ट फ़ाइल का उल्लेख है जो स्पष्ट रूप से ज़ीलो की एक बड़ी धारा के परिणाम का नहीं है।
माइकल बोर्गवर्ड्ट

नहीं, आप अभी भी कंप्यूटिंग शक्ति द्वारा सीमित होंगे। आदर्श रूप से आप gzip / zip चलाना नहीं चाहते हैं क्योंकि यह CPU (या कम से कम O (n) n विघटित फ़ाइल के आकार का उपयोग करेगा)
tonfa

@टनफा: ठीक है, निश्चित रूप से आप कंप्यूटिंग शक्ति द्वारा सीमित होंगे। मेरा तर्क यह था कि आप अपने डिस्क पर एक बड़ी फ़ाइल बनाना नहीं चाहते हैं और फिर ज़िप कर सकते हैं ...
Svish

2

सभी फ़ाइल संपीड़न एल्गोरिदम जानकारी संकुचित होने की एन्ट्रापी पर निर्भर करते हैं । सैद्धांतिक रूप से आप 0 या 1 की धारा को संपीड़ित कर सकते हैं, और यदि यह काफी लंबा है, तो यह बहुत अच्छी तरह से संपीड़ित करेगा।

वह सिद्धांत हिस्सा है। व्यावहारिक हिस्सा पहले ही दूसरों द्वारा इंगित किया गया है।


2

हाल ही में (पोस्ट 1995) bz2, lzma (7-zip) और rar जैसे संपीड़न एल्गोरिदम नीरस फ़ाइलों का शानदार संपीड़न देते हैं, और संपीड़न की एक भी परत ओवरएजेड सामग्री को एक प्रबंधनीय आकार में लपेटने के लिए पर्याप्त है।

एक और तरीका यह हो सकता है कि चरम आकार (एक्साबाइट्स) की एक विरल फ़ाइल बनाई जाए और फिर इसे कुछ ऐसे सांसारिक के साथ संपीड़ित किया जाए जो विरल फाइलों को समझता है (जैसे टार), अब अगर परीक्षक ने फाइल को स्ट्रीम किया तो परीक्षक को उन सभी शून्य को पढ़ने की आवश्यकता होगी जो मौजूद हैं फ़ाइल की वास्तविक सामग्री के बीच केवल पैड करने के लिए, अगर परीक्षक इसे डिस्क पर लिखता है, लेकिन बहुत कम जगह का उपयोग किया जाएगा (एक अच्छी तरह से व्यवहार किए गए अनारकलीवर और एक आधुनिक फाइलसिस्टम को मानते हुए)।


2

इसे आजमाया। आउटपुट ज़िप फ़ाइल का आकार एक छोटा 84-केबी फ़ाइल था।

अब तक किए गए कदम:

  1. '0' से भरी एक 1.4-GB .txt फ़ाइल बनाएं
  2. इसे संपीड़ित करें।
  3. .zip को .txt में नाम बदलें और फिर 16 प्रतियाँ बनाएँ
  4. सभी को एक .zip फ़ाइल में संपीड़ित करें,
  5. .zip फ़ाइल के अंदर पुनर्नामित .txt फ़ाइलों का नाम बदलें। फिर से .zip फ़ाइल में
  6. चरण 3 से 5 आठ बार दोहराएं।
  7. का आनंद लें :)

हालांकि मैं नहीं जानता कि कैसे उस हिस्से की व्याख्या करना है जहां नामांकित ज़िप फ़ाइल का संपीड़न अभी भी इसे एक छोटे आकार में संपीड़ित करता है, लेकिन यह काम करता है। शायद मैं सिर्फ तकनीकी शब्दों की कमी है।


वैसे, डरो मत कि यह लगातार अंदर सभी ज़िप फ़ाइलों को निकाल देगा। यह केवल ज़िप फ़ाइल को निकालता है जो इसके नीचे नीडिंत है, और नीचे तक सभी तरह से नहीं है।
जयक्रोल

2

सिलिकॉन वैली सीज़न 3 एपिसोड 7 मुझे यहां लाया। एक ज़िप बम बनाने के लिए कदम होगा।

  1. आकार के साथ शून्य (या यदि आपको लगता है कि वे पतली हैं) के साथ एक डमी फ़ाइल बनाएं (1 जीबी कहें)।
  2. इस फ़ाइल को ज़िप-फ़ाइल में संपीड़ित करें 1.zip
  3. nइस फ़ाइल की प्रतियां (10) बनाएं और इन 10 फ़ाइलों को एक संपीड़ित संग्रह में जोड़ें (कहें 2.zip)।
  4. चरण 3 kबार दोहराएं ।
  5. आपको जिप बम मिलेगा।

एक अजगर कार्यान्वयन के लिए, जाँच इस


1

मुझे पता नहीं है कि ज़िप रन लेंथ एन्कोडिंग का उपयोग करता है, लेकिन यदि ऐसा किया जाता है, तो ऐसी संपीड़ित फ़ाइल में डेटा का एक छोटा टुकड़ा और बहुत बड़ी रन-लंबाई मान होगी। रन-लंबाई मान निर्दिष्ट करेगा कि डेटा का छोटा टुकड़ा कितनी बार दोहराया जाता है। जब आपके पास बहुत बड़ा मूल्य होता है, तो परिणामी डेटा आनुपातिक रूप से बड़ा होता है।


2
ज़िप Lempel-Ziv-Welch (या संशोधित संस्करण) संपीड़न का उपयोग करता है जो डेटा को प्रभावी ढंग से टोकन देता है। बाइट्स के 'सेट' के लंबे रन से अच्छे संपीड़न का परिणाम होगा, इसलिए GIF (जो LZW का उपयोग भी करता है) ग्राफिक्स के लिए अच्छा है और JPEG (जो एक जटिल साइन वेव कंप्रेशन का उपयोग करता है) उन तस्वीरों के लिए बेहतर है जहां डेटा बहुत अधिक 'यादृच्छिक' है '।
लाजर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.