जवाबों:
यदि आपका सिस्टम पासवर्ड यानी MD5, SHA1 इत्यादि को स्टोर करने के लिए एक क्रिप्टोग्राफिक हैश का उपयोग करता है, तो पासवर्ड की लंबाई की कोई सीमा नहीं है क्योंकि इन हैश को किसी भी डेटा के साथ बनाया जा सकता है। एक MD5 या SHA1 हैश को पूरे हार्ड ड्राइव के लिए बनाया जा सकता है और यह आमतौर पर फोरेंसिक उद्देश्यों के लिए किया जाता है क्योंकि यदि एक बिट को भी कभी थोड़ा बदल दिया जाता है तो आपके पास एक बहुत अलग हैश होता है और इसलिए आप सत्यापित कर सकते हैं कि डेटा बदल गया है। इसका मतलब यह है कि आप इन सटीक एल्गोरिदम का उपयोग कर सकते हैं कि क्या डेटा के साथ छेड़छाड़ की गई है। लिनक्स (वर्तमान लिनक्स कम से कम) इन्हीं हैश फ़ंक्शन का उपयोग करता है। यह आपसे पासवर्ड मांगेगा और यह आपके द्वारा दिए गए पासवर्ड का एक क्रिप्टोग्राफिक हैश बनाएगा और देखेगा कि यह हैश स्टोर किए गए पासवर्ड से मेल खाता है या नहीं।
इन हैश का उपयोग करने के लिए एक मामूली नकारात्मक पहलू यह है कि एक हैश का एक परिमित आकार होता है उदाहरण के लिए एक एमडी 5 हैश 128 बिट है। इसका मतलब है कि एक एमडी 5 हैश में केवल 2^128
या 340,282,366,920,938,463,463,374,607,431,768,211,456
संभव संयोजन हैं। अब जबकि यह एक बड़ी संख्या है, तो इसका मतलब यह है कि आपके पास एक हैश टकराव हो सकता है, जहां आपके पास दो अलग-अलग आइटम या कुंजी हैं जो एक ही हैश का उत्पादन करते हैं। सिद्धांत रूप में, कुंजी का आकार जितना बड़ा होगा, टकराव की कम संभावना और उतनी देर के लिए पासवर्ड को बाध्य करना चाहिए, लेकिन यह एंट्रोपी का कड़ाई से मूल्यांकन कर रहा है और कितनी देर तक कर सकता है।ले लो, लेकिन एक मौका यह भी है कि वे जो पहली प्रविष्टि की कोशिश करते हैं वह वही हो सकता है जो हैश टक्कर से भी मेल खाता हो। आमतौर पर, आप वास्तव में एक हैश का उपयोग करके अधिक सुरक्षित होते हैं, जिसका आकार बड़ा होता है क्योंकि, ऐसा लगता है कि यह एमडी 5 है, 340,282,366,920,938,463,463,374,607,431,768,211,456
संभावित मैचों से बाहर होने वाले पहले पासवर्ड का अंतर बेहद कम है। एक अच्छा पासवर्ड भी चुनें क्योंकि बहुत सारे पटाखे शब्द सूचियों, नाम सूचियों और इन सूचियों के म्यूटेशन का उपयोग करेंगे (अर्थात यदि शब्द "मछली" है तो वे कोशिश करेंगे fish1234
, fish!@#$
आदि) इससे पहले कि वे एक पासवर्ड मजबूर करने के लिए जानवर पर भरोसा करते हैं।
जिस तरह से आप बता सकते हैं कि क्या आपका सिस्टम पासवर्ड स्टोर करने के लिए क्रिप्टोग्राफ़िक हैश का उपयोग करता है, /etc/shadow
फ़ाइल पर नज़र डालें (यह मानते हुए कि आपके पास रूट एक्सेस है)। हर लाइन की तरह स्वरूपित है user:password:last-changed:minimum-age:maximum-age:warning-period:inactivity-period:expiration-date:reserved
। पासवर्ड फ़ील्ड के साथ शुरू हो सकता है $num$
(यानी पासवर्ड फ़ील्ड में एक md5 हैश ऐसा दिखता है $1$01234567$b5lh2mHyD2PdJjFfALlEz1
कि वह कहाँ से शुरू होता है $1$
)। यदि यह इसके साथ शुरू होता है, तो इसका मतलब है कि आपका सिस्टम एक क्रिप्टोग्राफिक हैश का उपयोग कर रहा है। सभी आधुनिक प्रणालियों पर पासवर्ड फ़ील्ड का प्रारूप है $id$salt$hash
। आईडी निर्दिष्ट करती है कि आप किस प्रकार के क्रिप्टोग्राफ़िक हैश का उपयोग कर रहे हैं। नमक एक बेतरतीब ढंग से उत्पन्न स्ट्रिंग है जिसे कुंजी (सादे पाठ पासवर्ड) के साथ जाना जाता है ताकि ज्ञात हैश की पूर्व-निर्मित तालिकाओं के खिलाफ सुरक्षा हो सके। हैश नमक और कुंजी / पासवर्ड से निर्मित क्रिप्टोग्राफिक हैश है। अगर आपका पासवर्ड फील्ड से शुरू होता है$num$
तब आप क्रिप्टोग्राफिक हैश का उपयोग कर रहे हैं।
तो आप जानते हैं, संख्याओं का यह अर्थ है:
$1$
आप MD5 का उपयोग कर रहे हैं$2$
या $2a$
इसका मतलब है कि आप ब्लोफिश का उपयोग कर रहे हैं$5$
इसका मतलब है आप SHA-256 का उपयोग कर रहे हैं$6$
इसका मतलब है आप SHA-512 का उपयोग कर रहे हैंSHA-512 उस शानदार ऑफर का उपयोग करने के लिए सबसे अच्छा उपलब्ध हैश है। मुझे नहीं पता कि कितना जोरदार ब्लोफिश है, लेकिन यह ग्लिबक का हिस्सा नहीं है और इसके लिए केवल कुछ वितरणों पर उपलब्ध है जो इसे जोड़ चुके हैं। SHA-512 एक समान टक्कर की उम्मीद की जा सकती है और जटिल पर्याप्त पासवर्ड के साथ 512 बिट कुंजियों या 2 ^ 512 संभावित संयोजनों का उत्पादन करता है, यह वास्तविक पासवर्ड या हैश में टकराव का पता लगाने के लिए कंप्यूटर का एक बहुत लंबा समय लेगा। ।
इसके अलावा, यदि आपके पास एक हैश है जो $num$
तब से शुरू नहीं होता है तो आप डीईएस का उपयोग कर रहे हैं और यह 8 वर्ण की लंबाई तक सीमित है। मेरा मानना है कि पुरानी प्रणाली जो डीईएस का उपयोग करती है, या उनमें से कम से कम, वे किसी भी आकार का पासवर्ड लेंगे लेकिन केवल पहले 8 वर्ण का उपयोग करेंगे। इसका मतलब है कि यदि आप अपना पासवर्ड सेट करते हैं mybigbigapple
और कोई व्यक्ति पासवर्ड का उपयोग करता है, mybigbigcity
तो उन्हें अनुमति दी जाएगी क्योंकि DES केवल उपयोग करेगा mybigbig
और उसके बाद कुछ भी छूट जाएगा ।
तो आप जानते हैं, उबंटू 8.04, जिसे अप्रैल 2008 में रिलीज़ किया गया था, एमडी 5 हैश का उपयोग करता है। 8.10 से उबंटू, जिसे अक्टूबर 2008 में जारी किया गया था, और तब से सभी संस्करण SHA-512 हैश का उपयोग करते हैं। मुझे नहीं पता कि अप्रैल 2008 से पहले कितनी दूर है, लेकिन मेरा मानना है कि कई वर्षों तक यदि अधिक नहीं, तो सभी वितरणों में हैश का उपयोग किया जाता है।
उबंटू के वर्तमान 12.04 और 14.04 एलटीएस (दीर्घकालिक समर्थन रिलीज) डिफ़ॉल्ट रूप से SHA-512 का उपयोग करते हुए दिखाई देते हैं, जैसा $6$
कि हैश में / आदि / छाया फ़ाइल में पूर्वनिर्मित के साथ देखा जा सकता है :
catullus:$6$MsHYK60sqcv$BtDqVCMXibpqg[...]
अब किसी भी हैशिंग एल्गोरिथ्म के लिए अनुमत कुंजी या पासवर्ड की लंबाई केवल यह निर्धारित करने के लिए नहीं है कि आपको किस आकार के पासवर्ड की अनुमति है। ब्याज की अन्य वस्तु यह है कि कार्यक्रम कैसे लिखा जाता है और स्वयं किस लंबाई का कार्यक्रम समर्थन करेगा। सभी आधुनिक पासवार्ड प्रोग्राम और शायद crypt(3)
लिनक्स में अधिकांश फ़ंक्शन। लंबे समय तक क्रिप्ट (क्योंकि कम से कम एमडी 5 का उपयोग किया गया था और शायद उससे पहले) ने वास्तविक कुंजी के लिए वर्ण बिंदुओं की अनुमति दी है। इसका मतलब यह है कि किसी कुंजी को कितनी देर तक स्वीकार किया जाएगा इसकी एकमात्र सीमा इस बात पर आधारित है कि उस प्रोग्राम के पास कितनी रैम उपलब्ध है, लेकिन सभी संभावना में, यह संभवत: बहुत दूर है फिर किसी भी व्यक्ति को कभी भी याद रखने में सक्षम होगा (लाखों अक्षर?)।
यह आपके प्रश्न का उत्तर देना चाहिए कि पासवर्ड कितने समय के लिए हो सकता है। आशा है कि मैंने मदद की।
संदर्भ:
यह निर्भर करता है कि कौन से प्रमाणीकरण मॉड्यूल का उपयोग किया जाता है। आधुनिक लिनक्स सिस्टम में, पासवर्ड की लंबाई पर कोई अधिकतम सीमा नहीं है। कुछ अप्रचलित प्रणालियों में उनके पासवर्ड भंडारण प्रणाली द्वारा लगाई गई सीमाएं हो सकती हैं - लोकप्रिय अधिकतम 8, 40 और 255 लगते हैं।
पासवर्ड कैसे संग्रहीत किया जाता है, इस पर निर्भर करते हुए, MD5, SHA1, ब्लोफिश आदि मुझे लगता है कि स्टोरेज द्वारा निर्धारित पासवर्ड की कोई सीमा नहीं है।
पुराने कार्यान्वयन में एक सीमा हो सकती है जो संभवतः 8 या 255 वर्ण है।
यह www.serverfault.com के लिए बेहतर प्रश्न के समान प्रतीत होता है, हालांकि :)
पासवार्ड कमांड एन्क्रिप्शन के लिए mcrypt कमांड को शामिल कर रहा है। Mcrypt के स्रोत कोड के अनुसार स्टडिन का अधिकतम आकार 512 वर्णों (सिफर) तक सीमित है - लेकिन यह दो साल पहले था .... - (मैं अगले घंटे में इस जवाब को अपडेट करूंगा) ... हां ... स्रोत कोड में 2.6.8 निर्देशिका निर्देशिका में mcrypt का, वहाँ फ़ाइल getpass.c है - वहाँ शुरुआत में आप देखें 512 सेट स्थिर चार मान के रूप में। (मैं इसे 1.4 जीबी तक पंप करना पसंद करूंगा ...):