क्रिप्ट (सी): Difference between revisions

From Vigyanwiki
m (Deepak moved page तहखाना (सी) to क्रिप्ट (सी) without leaving a redirect)
No edit summary
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Key derivation function ("password hash")}}
{{short description|Key derivation function ("password hash")}}
{{about|the Unix C library function|the Unix utility|Crypt (Unix)}}
{{about|यूनिक्स सी लाइब्रेरी प्रकार्य|यूनिक्स उपयोगिता|क्रिप्ट (यूनिक्स)}}
{{DISPLAYTITLE:crypt (C)}}
{{DISPLAYTITLE:crypt (C)}}
क्रिप्ट एक C POSIX लाइब्रेरी फंक्शन है। यह आमतौर पर उपयोगकर्ता खाता पासवर्ड के [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] की गणना करने के लिए उपयोग किया जाता है। फ़ंक्शन एक टेक्स्ट स्ट्रिंग को आउटपुट करता है जो [[नमक (क्रिप्टोग्राफी)]] को भी [[कोड]] करता है (आमतौर पर पहले दो वर्ण स्वयं नमक होते हैं और शेष हैशेड परिणाम होता है), और उपयोग किए गए हैश एल्गोरिदम की पहचान करता है (पारंपरिक रूप से नीचे समझाया गया है)। यह आउटपुट स्ट्रिंग एक पासवर्ड रिकॉर्ड बनाता है, जो आमतौर पर टेक्स्ट फ़ाइल में संग्रहीत होता है।


अधिक औपचारिक रूप से, क्रिप्ट यूनिक्स सिस्टम पर पासवर्ड सत्यापन और भंडारण के लिए क्रिप्टोग्राफ़िक कुंजी व्युत्पत्ति कार्य प्रदान करता है।
क्रिप्ट एक सी पॉज़िक्स लाइब्रेरी प्रकार्य है। यह सामान्यतः उपयोगकर्ता स्पष्टीकरण पासवर्ड के [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन|गूढ़लेखिकी हैश प्रकार्य]] की गणना करने के लिए उपयोग किया जाता है। प्रकार्य टेक्स्ट स्ट्रिंग को निर्गम करता है जो [[नमक (क्रिप्टोग्राफी)|साल्ट (गूढ़लेखिकी]]) को भी [[कोड]] करता है (सामान्यतः पहले दो वर्ण स्वयं साल्ट होते हैं और शेष हैशेड परिणाम होता है), और उपयोग किए गए हैश एल्गोरिदम की पहचान करते है (पारंपरिक रूप से नीचे समझाया गया है)। यह निर्गम स्ट्रिंग एक पासवर्ड अभिलेखबद्ध बनाता है, जो सामान्यतः टेक्स्ट फ़ाइल में संग्रहीत होते है।


== यूनिक्स क्रिप्ट यूटिलिटी से संबंध ==
अधिक औपचारिक रूप से, क्रिप्ट यूनिक्स प्रणाली पर पासवर्ड सत्यापन और भंडारण के लिए गूढ़लेखिकी कुंजी व्युत्पत्ति प्रकार्य प्रदान करते है।
यूनिक्स में एक असंबंधित [[क्रिप्ट (यूनिक्स)]] उपयोगिता है, जिसे अक्सर सी लाइब्रेरी फ़ंक्शन के साथ भ्रमित किया जाता है। दोनों के बीच अंतर करने के लिए, लेखक अक्सर यूटिलिटी प्रोग्राम को 'क्रिप्ट (1)' के रूप में संदर्भित करते हैं, क्योंकि यह यूनिक्स [[मैनुअल पेज (यूनिक्स)]] के खंड 1 में प्रलेखित है, और सी लाइब्रेरी फ़ंक्शन को 'क्रिप्ट' के रूप में संदर्भित करता है। (3) '', क्योंकि इसका प्रलेखन मैनुअल सेक्शन 3 में है।<ref name=fbsd3/>
 
== यूनिक्स क्रिप्ट उपयोगिता से संबंध ==
यूनिक्स में असंबंधित [[क्रिप्ट (यूनिक्स)|क्रिप्ट (यूनिक्स]]) उपयोगिता है, जिसे प्रायः सी लाइब्रेरी प्रकार्य के साथ भ्रमित किया जाता है। दोनों के बीच अंतर करने के लिए, लेखक प्रायः उपयोगिता प्रोग्राम को 'क्रिप्ट (1)' के रूप में संदर्भित करते हैं, क्योंकि यह यूनिक्स [[मैनुअल पेज (यूनिक्स)|मैनुअल पृष्ठ (यूनिक्स]]) के खंड 1 में प्रलेखित है, और सी लाइब्रेरी प्रकार्य को 'क्रिप्ट' के रूप में संदर्भित करते है। (3), ''क्योंकि इसका प्रलेखन मैनुअल अनुभाग 3 में है।<ref name=fbsd3/>''




== विवरण ==
== विवरण ==
यह एक ही क्रिप्ट फ़ंक्शन का उपयोग भंडारण के लिए एक नया हैश उत्पन्न करने के लिए और तुलना के लिए रिकॉर्ड किए गए नमक (क्रिप्टोग्राफी) के साथ एक प्रस्तावित पासवर्ड को हैश करने के लिए भी किया जाता है।<!-- TODO: example in pseudocode or Perl -->
यह एक ही क्रिप्ट प्रकार्य का उपयोग भंडारण के लिए नवीन हैश उत्पन्न करने के लिए और तुलना के लिए अभिलेखबद्ध किए गए साल्ट (गूढ़लेखिकी) के साथ एक प्रस्तावित पासवर्ड को हैश करने के लिए भी किया जाता है।
क्रिप्ट लाइब्रेरी रूटीन के आधुनिक यूनिक्स कार्यान्वयन विभिन्न प्रकार की हैश योजनाओं का समर्थन करते हैं। मॉड्यूलर क्रिप्ट प्रारूप नामक वास्तविक मानक के बाद, परिणामस्वरूप हैशटेक्स्ट में उपयोग किए जाने वाले विशेष हैश एल्गोरिदम को एक अद्वितीय कोड उपसर्ग द्वारा पहचाना जा सकता है।<ref>
 
क्रिप्ट लाइब्रेरी परिच्छेदन के आधुनिक यूनिक्स कार्यान्वयन विभिन्न प्रकार की हैश पद्धतिओं का समर्थन करते हैं। मॉड्यूलर क्रिप्ट प्रारूप नामक वास्तविक मानक के बाद, परिणामस्वरूप हैशटेक्स्ट में उपयोग किए जाने वाले विशेष हैश एल्गोरिदम को अद्वितीय कोड प्रीफिक्स द्वारा पहचाना जा सकता है।<ref>
Simson Garfinkel, Alan Schwartz, Gene Spafford.
Simson Garfinkel, Alan Schwartz, Gene Spafford.
[https://books.google.com/books?id=50maN7VmpusC&q=Modular+Crypt+Format "Practical Unix & Internet Security"].
[https://books.google.com/books?id=50maN7VmpusC&q=Modular+Crypt+Format "Practical Unix & Internet Security"].
Line 20: Line 22:
</ref><ref name=":0">{{cite web|url=http://pythonhosted.org/passlib/modular_crypt_format.html|title=Modular Crypt Format — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=https://github.com/ademarre/binary-mcf|title=ademarre/binary-mcf|website=GitHub.com|access-date=2 December 2018}}</ref>
</ref><ref name=":0">{{cite web|url=http://pythonhosted.org/passlib/modular_crypt_format.html|title=Modular Crypt Format — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=https://github.com/ademarre/binary-mcf|title=ademarre/binary-mcf|website=GitHub.com|access-date=2 December 2018}}</ref>


<code>crypt()</code> ई> लाइब्रेरी फ़ंक्शन भी [[पर्ल]] में शामिल है,<ref>{{cite web|url=http://perldoc.perl.org/functions/crypt.html|title=क्रिप्ट - perldoc.perl.org|website=Perldoc.perl.org|access-date=2 December 2018}}</ref> [[पीएचपी]],<ref>{{cite web|url=http://us.php.net/manual/en/function.crypt.php|title=PHP: crypt - Manual|website=Us.php.net|access-date=2 December 2018}}</ref> पाईक (प्रोग्रामिंग भाषा),<ref>{{cite web |url=http://pike.ida.liu.se/generated/manual/modref/ex/predef_3A_3A/crypt.html |title=तहखाना ()|access-date=2013-02-09 |archive-url=https://web.archive.org/web/20121002215125/http://pike.ida.liu.se/generated/manual/modref/ex/predef_3A_3A/crypt.html |archive-date=2012-10-02 }}</ref> [[पायथन (प्रोग्रामिंग भाषा)]]<ref>{{cite web|url=https://docs.python.org/library/crypt.html|title=crypt — Function to check Unix passwords — Python 3.7.1 documentation|website=Docs.python.org|access-date=2 December 2018}}</ref> (हालांकि अब इसे 3.11 के रूप में हटा दिया गया है), और [[रूबी (प्रोग्रामिंग भाषा)]]<ref>{{cite web|url=http://ruby-doc.org/core/classes/String.html#M001174|title=Class: String (Ruby 2.5.3)|website=Ruby-doc.org|access-date=2 December 2018}}</ref> प्रोग्रामिंग भाषा।
<code>crypt (</code>) लाइब्रेरी प्रकार्य [[पर्ल]],<ref>{{cite web|url=http://perldoc.perl.org/functions/crypt.html|title=क्रिप्ट - perldoc.perl.org|website=Perldoc.perl.org|access-date=2 December 2018}}</ref> [[पीएचपी]],<ref>{{cite web|url=http://us.php.net/manual/en/function.crypt.php|title=PHP: crypt - Manual|website=Us.php.net|access-date=2 December 2018}}</ref> पाईक (प्रोग्रामिंग भाषा),<ref>{{cite web |url=http://pike.ida.liu.se/generated/manual/modref/ex/predef_3A_3A/crypt.html |title=तहखाना ()|access-date=2013-02-09 |archive-url=https://web.archive.org/web/20121002215125/http://pike.ida.liu.se/generated/manual/modref/ex/predef_3A_3A/crypt.html |archive-date=2012-10-02 }}</ref> [[पायथन (प्रोग्रामिंग भाषा)]] <ref>{{cite web|url=https://docs.python.org/library/crypt.html|title=crypt — Function to check Unix passwords — Python 3.7.1 documentation|website=Docs.python.org|access-date=2 December 2018}}</ref> (यद्यपि अब इसे 3.11 के रूप में हटा दिया गया है), और [[रूबी (प्रोग्रामिंग भाषा)]] <ref>{{cite web|url=http://ruby-doc.org/core/classes/String.html#M001174|title=Class: String (Ruby 2.5.3)|website=Ruby-doc.org|access-date=2 December 2018}}</ref> प्रोग्रामिंग भाषाओं में भी सम्मिलित है।


== क्रिप्ट == द्वारा समर्थित कुंजी व्युत्पत्ति कार्य
== क्रिप्ट द्वारा समर्थित कुंजी व्युत्पत्ति प्रकार्य ==
समय के साथ विभिन्न एल्गोरिदम पेश किए गए हैं। पिछड़े संगतता को सक्षम करने के लिए, प्रत्येक योजना ने [[पासवर्ड हैश]] के क्रमांकन के कुछ सम्मेलन का उपयोग करना शुरू किया जिसे बाद में मॉड्यूलर क्रिप्ट प्रारूप (एमसीएफ) कहा गया।<ref name=":0" />वास्तविक एमसीएफ मानक से पहले जनरेट किया गया पुराना क्रिप्ट(3) हैश एक योजना से दूसरी योजना में भिन्न हो सकता है। [[पासवर्ड हैशिंग प्रतियोगिता]] के दौरान मॉड्यूलर क्रिप्ट प्रारूप का एक अच्छी तरह से परिभाषित सबसेट बनाया गया था।<ref name=":0" />प्रारूप को इस प्रकार परिभाषित किया गया है:<ref name="phc-string-format">{{cite web  | url=https://github.com/P-H-C/phc-string-format/blob/master/phc-sf-spec.md | title=पीएचसी स्ट्रिंग प्रारूप|website=Github|author=Password Hash Competition}}</ref>
समय के साथ विभिन्न एल्गोरिदम प्रस्तुत किए गए हैं। पिछड़े संगतता को सक्षम करने के लिए, प्रत्येक पद्धति ने [[पासवर्ड हैश]] के क्रमांकन के कुछ सम्मेलन का उपयोग करना प्रारम्भ किया जिसे बाद में मॉड्यूलर क्रिप्ट प्रारूप (एमसीएफ) कहा गया।<ref name=":0" /> वास्तविक एमसीएफ मानक से पहले जनित किया गया प्राचीन क्रिप्ट (3) हैश एक पद्धति से दूसरी पद्धति में भिन्न हो सकते है। [[पासवर्ड हैशिंग प्रतियोगिता]] के समय मॉड्यूलर क्रिप्ट प्रारूप का ठीक रूप से परिभाषित उपसमूह बनाया गया था।<ref name=":0" /> प्रारूप को इस प्रकार परिभाषित किया गया है:<ref name="phc-string-format">{{cite web  | url=https://github.com/P-H-C/phc-string-format/blob/master/phc-sf-spec.md | title=पीएचसी स्ट्रिंग प्रारूप|website=Github|author=Password Hash Competition}}</ref>


<code>$<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]]</code>
<code>$<id>[$<nowiki><param></nowiki>=<value> (,<nowiki><param></nowiki>=<value>) *][$<salt>[$<hash>]]</code>  
कहाँ


* <code>id</code>: हैशिंग एल्गोरिथ्म का प्रतिनिधित्व करने वाला एक पहचानकर्ता (जैसे कि [[MD5]] के लिए 1, [[SHA-2]]|SHA-256 आदि के लिए 5)
जहाँ
* <code>param</code> नाम और उसका <code>value</code>: हैश जटिलता पैरामीटर, जैसे राउंड/पुनरावृत्तियों की संख्या
 
* <code>salt</code>: मूलांक-64 एन्कोडेड नमक (क्रिप्टोग्राफी)
* <code>id</code>: हैशिंग एल्गोरिदम का प्रतिनिधित्व करने वाला एक पहचानकर्ता (जैसे कि [[MD5|एमडी5]] के लिए 1, [[SHA-2|एसएचए-2]] आदि के लिए 5)  
* <code>hash</code>: पासवर्ड और नमक को हैश करने का मूलांक -64 एन्कोडेड परिणाम
* <code>param</code> नाम और उसकी <code>value</code>: हैश जटिलता पैरामीटर, जैसे आवर्तन/पुनरावृत्तियों की संख्या
क्रिप्ट में रेडिक्स-64 एन्कोडिंग को B64 कहा जाता है और वर्णमाला का उपयोग करता है <code>./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz</code> जो अधिक सामान्य Base64#कार्यान्वयन और इतिहास से भिन्न है
* <code>salt</code>: मूलांक-64 विकोडित साल्ट (गूढ़लेखिकी)  
* <code>hash</code>: पासवर्ड और साल्ट को हैश करने का मूलांक -64 विकोडित परिणाम
क्रिप्ट में रेडिक्स-64 विकोडन को बी64 कहा जाता है और वर्णमाला का उपयोग करता है <code>./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz</code> जो अधिक सामान्य बेस64 कार्यान्वयन और इतिहास से भिन्न है
  {| class="wikitable"
  {| class="wikitable"
!Scheme id
!पद्धति आईडी
!Schema
!रूपरेखा
!Example
!उदाहरण
|-
|-
|
|
|[[Data Encryption Standard|DES]]
|[[Data Encryption Standard|डीईएस]]
|<code>Kyq4bCxAXJkbg</code>
|<code>Kyq4bCxAXJkbg</code>
|-
|-
|{{mono|_}}
|{{mono|_}}
|[[Berkeley Software Design|BSDi]]
|[[Berkeley Software Design|बीएसडीआई]]
|<code>_EQ0.jzhSVeUyoSqLupI</code>
|<code>_EQ0.jzhSVeUyoSqLupI</code>
|-
|-
|{{mono|1}}
|{{mono|1}}
|MD5
|एमडी5
|<code>$1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81</code>
|<code>$1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81</code>
|-
|-
|{{mono|2}}, {{mono|2a}}, {{mono|2b}}, {{mono|2x}}, {{mono|2y}}
|{{mono|2}}, {{mono|2a}}, {{mono|2b}}, {{mono|2x}}, {{mono|2y}}
|[[bcrypt]]
|[[bcrypt|बीक्रिप्ट]]
|<code>$2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi</code>
|<code>$2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi</code>
|-
|-
|{{mono|3}}
|{{mono|3}}
|[[NTLM Authentication|NTHASH]]
|[[NTLM Authentication|एनटीहैश]]
|<code>$3$$8846f7eaee8fb117ad06bdd830b7586c</code>
|<code>$3$$8846f7eaee8fb117ad06bdd830b7586c</code>
|-
|-
|{{mono|5}}
|{{mono|5}}
|[[SHA-2|SHA-256]]
|[[SHA-2|एसएचए-256]]
|<code>$5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD</code>
|<code>$5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD</code>
|-
|-
|{{mono|6}}
|{{mono|6}}
|[[SHA-2|SHA-512]]
|[[SHA-2|एसएचए-512]]
|<code>$6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0</code>
|<code>$6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0</code>
|-
|-
|{{mono|7}}
|{{mono|7}}
|scrypt
|एसक्रिप्ट
|<code>$7$DU..../....2Q9obwLhin8qvQl6sisAO/$sHayJj/JBdcuD4lJ1AxiwCo9e5XSi8TcINcmyID12i8</code>
|<code>$7$DU..../....2Q9obwLhin8qvQl6sisAO/$एसएचएyJj/JBdcuD4lJ1AxiwCo9e5XSi8TcINcmyID12i8</code>
|-
|-
|{{mono|8 (Cisco)}}
|{{mono|8 (Cisco)}}
|[[PBKDF2]] with [[SHA256]]
|[[SHA256|एसएचए256]] के साथ[[SHA256|पीबीकेडीएफ2]]
|<code>$8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.</code>
|<code>$8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.</code>
|-
|-
|{{mono|8 (JunOS)}}
|{{mono|8 (JunOS)}}
|[[PBKDF2]]
|[[PBKDF2|पीबीकेडीएफ2]]
|<code>$8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted</code>
|<code>$8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted</code>
<code>$8$aes256-gcm$hmac-sha2-256$100$y/4YMC4YDLU$fzYDI4jjN6YCyQsYLsaf8A$Ilu4jLcZarD9YnyD /Hejww$okhBlc0cGakSqYxKww</code>
<code>$8$aes256-gcm$hmac-एसएचए2-256$100$y/4YMC4YDLU$fzYDI4jjN6YCyQsYLsaf8A$Ilu4jLcZarD9YnyD /Hejww$okhBlc0cGakSqYxKww</code>
|-
|-
|{{mono|gy}}
|{{mono|gy}}
|gost-yescrypt
|गोस्त-यसक्रिप्ट
|<code>$gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26</code>
|<code>$gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26</code>
|-
|-
|{{mono|md5}}
|{{mono|md5}}
|Solaris MD5
|सोलारिस एमडी5
|<code>$md5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0</code>
|<code>$एमडी5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0</code>
|-
|-
|{{mono|sha1}}
|{{mono|sha1}}
|[[PBKDF1]] with [[SHA-1]]
|[[SHA-1|एसएचए-1]]
|<code>$sha1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq</code>
के साथ[[PBKDF1|पीबीकेडीएफ1]]
|<code>$एसएचए1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq</code>
|-
|-
|{{mono|y}}
|{{mono|y}}
|[[yescrypt]]
|[[yescrypt|यसक्रिप्ट]]
|<code>$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7</code>
|<code>$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7</code>
|}
|}
PHC सबसेट में अधिकांश MCF हैश शामिल हैं। कई अतिरिक्त एप्लिकेशन-परिभाषित विधियां मौजूद हैं।<ref name=":0" />
पीएचसी उपसमूह में अधिकांश एमसीएफ हैश सम्मिलित हैं। कई अतिरिक्त एप्लिकेशन-परिभाषित विधियां स्थित हैं।<ref name=":0" />
 
=== एक कुंजी के रूप में पासवर्ड का उपयोग करके मूल कार्यान्वयन ===
 
तीसरे संस्करण यूनिक्स में<ref>{{cite web | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man3/crypt.3 | title=crypt – password encoding | work=UNIX Third Edition Programmers' Manual | date = 1973-01-15 }}</ref> क्रिप्ट () लाइब्रेरी प्रकार्य का मूल कार्यान्वयन<ref name="passwd">{{cite web  | url=https://www.bell-labs.com/usr/dmr/www/passwd.ps | title=Password Security: A Case History. | work=Bell Laboratories |author1=Morris, Robert |author2=Thompson, Ken | date=1978-04-03 | access-date=2013-12-17 }}</ref> ने [[M-209|एम-209]] सिफर मशीन का अनुकरण किया। कुंजी के साथ [[पासवर्ड]] को एन्क्रिप्ट करने के अतिरिक्त, जो पासवर्ड को गूढलेखित मान और कुंजी से पुनर्प्राप्त करने की अनुमति देता, उसने पासवर्ड को कुंजी के रूप में उपयोग किया, और पासवर्ड डेटाबेस में इस कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने का परिणाम था।
 
=== एक कुंजी === के रूप में पासवर्ड का उपयोग करके मूल कार्यान्वयन
क्रिप्ट() लाइब्रेरी फ़ंक्शन का मूल कार्यान्वयन<ref name="passwd">{{cite web  | url=https://www.bell-labs.com/usr/dmr/www/passwd.ps | title=Password Security: A Case History. | work=Bell Laboratories |author1=Morris, Robert |author2=Thompson, Ken | date=1978-04-03 | access-date=2013-12-17 }}</ref> तीसरे संस्करण यूनिक्स में<ref>{{cite web | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V3/man/man3/crypt.3 | title=crypt – password encoding | work=UNIX Third Edition Programmers' Manual | date = 1973-01-15 }}</ref> [[M-209]] सिफर मशीन की नकल की। एक कुंजी के साथ [[पासवर्ड]] को एन्क्रिप्ट करने के बजाय, जो पासवर्ड को एन्क्रिप्टेड मान और कुंजी से पुनर्प्राप्त करने की अनुमति देता, उसने पासवर्ड को एक कुंजी के रूप में उपयोग किया, और पासवर्ड डेटाबेस में इस कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने का परिणाम था।


=== पारंपरिक डीईएस-आधारित योजना ===
=== पारंपरिक डीईएस-आधारित पद्धति ===
मूल पासवर्ड एन्क्रिप्शन योजना बहुत तेज़ पाई गई और इस प्रकार सबसे संभावित पासवर्डों की क्रूर बल गणना के अधीन थी।<ref name="passwd"/>सातवें संस्करण यूनिक्स में,<ref>{{cite web | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/man/man3/crypt.3 | title=crypt, setkey, encrypt – DES encryption | work=UNIX Seventh Edition Programmers' Manual | date = 1979 }}</ref> योजना को [[डेटा एन्क्रिप्शन मानक]] एल्गोरिथम के एक संशोधित रूप में बदल दिया गया था। इस परिवर्तन का एक लक्ष्य एन्क्रिप्शन को धीमा करना था। इसके अलावा, एल्गोरिथ्म में एक 12-बिट नमक (क्रिप्टोग्राफी) शामिल है ताकि यह सुनिश्चित किया जा सके कि एक हमलावर को एक साथ पूरे पासवर्ड डेटाबेस को लक्षित करने में सक्षम होने के विपरीत प्रत्येक पासवर्ड को स्वतंत्र रूप से क्रैक करने के लिए मजबूर किया जाएगा।
मूल पासवर्ड गूढ़लेखन पद्धति बहुत तीव्र पाई गई और इस प्रकार सबसे संभावित पासवर्डों के पशुपन बल गणना के अधीन थी।<ref name="passwd"/> सातवें संस्करण यूनिक्स में,<ref>{{cite web | url=http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/man/man3/crypt.3 | title=crypt, setkey, encrypt – DES encryption | work=UNIX Seventh Edition Programmers' Manual | date = 1979 }}</ref> पद्धति को [[डेटा एन्क्रिप्शन मानक|डेटा गूढ़लेखन मानक]] एल्गोरिदम के संशोधित रूप में बदल दिया गया था। इस परिवर्तन का लक्ष्य गूढ़लेखन को मंद करना था। इसके अतिरिक्त, एल्गोरिदम में एक 12-बिट साल्ट (गूढ़लेखिकी) सम्मिलित है ताकि यह सुनिश्चित किया जा सके कि आक्रामक को एक साथ पूरे पासवर्ड डेटाबेस को लक्षित करने में सक्षम होने के विपरीत प्रत्येक पासवर्ड को स्वतंत्र रूप से क्रैक करने के लिए विवश किया जाएगा।


विस्तार से, उपयोगकर्ता के पासवर्ड को आठ अक्षरों तक छोटा कर दिया जाता है, और उनमें से प्रत्येक को केवल 7-बिट्स तक सीमित कर दिया जाता है; यह 56-बिट डेस कुंजी बनाता है। उस कुंजी का उपयोग तब एक ऑल-बिट्स-जीरो ब्लॉक को एन्क्रिप्ट करने के लिए किया जाता है, और फिर सिफरटेक्स्ट को उसी कुंजी के साथ फिर से एन्क्रिप्ट किया जाता है, और इसी तरह कुल 25 डेस एन्क्रिप्शन के लिए। एन्क्रिप्शन एल्गोरिदम को खराब करने के लिए 12-बिट नमक का उपयोग किया जाता है, इसलिए क्रिप्ट() को लागू करने के लिए मानक डीईएस कार्यान्वयन का उपयोग नहीं किया जा सकता है। नमक और अंतिम सिफरटेक्स्ट को [[बेस 64]] के रूप में प्रिंट करने योग्य स्ट्रिंग में एन्कोड किया गया है।
विस्तार से, उपयोगकर्ता के पासवर्ड को आठ अक्षरों तक छोटा कर दिया जाता है, और उनमें से प्रत्येक को मात्र 7-बिट तक सीमित कर दिया जाता है; यह 56-बिट डीईएस कुंजी बनाता है। उस कुंजी का उपयोग तब सभी-बिट-शून्य कक्ष को एन्क्रिप्ट करने के लिए किया जाता है, और फिर सिफ़र को उसी कुंजी के साथ फिर से एन्क्रिप्ट किया जाता है, और इसी प्रकार कुल 25 डीईएस गूढ़लेखन के लिए। गूढ़लेखन एल्गोरिदम को उद्विग्न करने के लिए 12-बिट साल्ट का उपयोग किया जाता है, इसलिए क्रिप्ट () को लागू करने के लिए मानक डीईएस कार्यान्वयन का उपयोग नहीं किया जा सकता है। साल्ट और अंतिम सिफ़र को [[बेस 64]] के रूप में मुद्रण करने योग्य स्ट्रिंग में विकोडित किया गया है।


यह तकनीकी रूप से एन्क्रिप्शन नहीं है क्योंकि डेटा (सभी बिट्स शून्य) को गुप्त नहीं रखा जा रहा है; यह व्यापक रूप से पहले से सभी के लिए जाना जाता है। हालाँकि, DES की एक विशेषता यह है कि यह [[ज्ञात सादा पाठ]] स्थितियों में भी की रिकवरी के लिए बहुत प्रतिरोधी है। यह सैद्धांतिक रूप से संभव है कि दो अलग-अलग पासवर्ड का परिणाम एक ही हैश में हो सकता है। इस प्रकार पासवर्ड को कभी भी डिक्रिप्ट नहीं किया जाता है: इसका उपयोग केवल परिणाम की गणना करने के लिए किया जाता है, और मिलान के परिणामों को प्रमाण माना जाता है कि पासवर्ड समान थे।
यह तकनीकी रूप से गूढ़लेखन नहीं है क्योंकि डेटा (सभी बिट शून्य) को गुप्त नहीं रखा जा रहा है; यह व्यापक रूप से पहले से सभी के लिए जाना जाता है। यद्यपि, डीईएस की विशेषता यह है कि यह [[ज्ञात सादा पाठ|ज्ञात सादे पाठ]] स्थितियों में भी की पुनः प्राप्ति के लिए बहुत प्रतिरोधी है। यह सैद्धांतिक रूप से संभव है कि दो अलग-अलग पासवर्ड का परिणाम एक ही हैश में हो सकते है। इस प्रकार पासवर्ड को कभी भी डिक्रिप्ट नहीं किया जाता है: इसका उपयोग मात्र परिणाम की गणना करने के लिए किया जाता है, और मिलान के परिणामों को प्रमाण माना जाता है कि पासवर्ड समान थे।


इस पद्धति का लाभ यह रहा है कि हैशटेक्स्ट को सिस्टम प्रशासकों या अन्य उपयोगकर्ताओं को संबंधित प्लेनटेक्स्ट पासवर्ड को उजागर किए बिना यूनिक्स सिस्टम के बीच संग्रहीत और कॉपी किया जा सकता है। इस सुवाह्यता ने 30 से अधिक वर्षों तक कंप्यूटिंग आर्किटेक्चर की कई पीढ़ियों और कई विक्रेताओं से यूनिक्स के कई संस्करणों में काम किया है।
इस पद्धति का लाभ यह रहा है कि हैशटेक्स्ट को प्रणाली संचालनों या अन्य उपयोगकर्ताओं को संबंधित सादे पाठ पासवर्ड को उद्भासित किए बिना यूनिक्स प्रणाली के बीच संग्रहीत और अनुकरण किया जा सकता है। इस सुवाह्यता ने 30 से अधिक वर्षों तक कंप्यूटिंग स्थापत्य की कई पीढ़ियों और कई विक्रेताओं से यूनिक्स के कई संस्करणों में कार्य किया है।


==== पारंपरिक योजना की कमजोरियां ====
==== पारंपरिक पद्धति की दुर्बलता ====
पारंपरिक डीईएस-आधारित क्रिप्ट एल्गोरिथम मूल रूप से चुना गया था क्योंकि डीईएस ज्ञात प्लेनटेक्स्ट हमलों के सामने भी कुंजी पुनर्प्राप्ति के लिए प्रतिरोधी था, और क्योंकि यह कम्प्यूटेशनल रूप से महंगा था। शुरुआती यूनिक्स मशीनों पर पासवर्ड हैश की गणना करने में पूरे एक सेकंड का समय लगता था। इसने उस युग में शब्दकोष के हमलों के लिए यथोचित प्रतिरोधी बना दिया। उस समय पासवर्ड हैश आमतौर पर एक खाता फ़ाइल (<code>[[/etc/passwd]]</code>) जो सिस्टम पर किसी के लिए भी पठनीय था। (इस खाता फ़ाइल का उपयोग उपयोगकर्ता आईडी नंबरों को नामों में, और उपयोगकर्ता नामों को पूर्ण नामों आदि में मैप करने के लिए भी किया गया था)।
पारंपरिक डीईएस-आधारित क्रिप्ट एल्गोरिदम मूल रूप से चुना गया था क्योंकि डीईएस ज्ञात सादे पाठ आक्षेप के सामने भी कुंजी पुनर्प्राप्ति के लिए प्रतिरोधी था, और क्योंकि यह संगणनात्मक रूप से कीमती था। प्रारंभिक यूनिक्स मशीनों पर पासवर्ड हैश की गणना करने में पूरे एक सेकंड का समय लगता था। इसने उस युग में शब्दकोष के आक्षेप के लिए यथोचित प्रतिरोधी बना दिया। उस समय पासवर्ड हैश सामान्यतः स्पष्टीकरण फ़ाइल (<code>[[/etc/passwd]]</code>) में संग्रहीत किया जाता था जो प्रणाली पर किसी के लिए भी पठनीय था। (इस स्पष्टीकरण फ़ाइल का उपयोग उपयोगकर्ता आईडी संख्याओं को नामों में, और उपयोगकर्ता नामों को पूर्ण नामों आदि में प्रतिचित्रित करने के लिए भी किया गया था)।


उस समय से तीन दशकों में, कंप्यूटर बहुत अधिक शक्तिशाली हो गए हैं। मूर के नियम को आम तौर पर सही माना गया है, इसलिए किसी दिए गए वित्तीय निवेश के लिए उपलब्ध कंप्यूटर की गति और क्षमता यूनिक्स के पहली बार लिखे जाने के बाद से 20 गुना से अधिक हो गई है। इसने लंबे समय से डीईएस-आधारित एल्गोरिदम को शब्दकोश हमलों के प्रति संवेदनशील बना दिया है, और यूनिक्स और यूनिक्स जैसी प्रणालियों जैसे कि [[लिनक्स]] ने शैडो पासवर्ड का उपयोग किया है। लंबे समय तक शैडो फाइलें, खाता फ़ाइल से केवल पासवर्ड हैश मानों को माइग्रेट करना (<code>/etc/passwd</code>) और एक फ़ाइल में (पारंपरिक रूप से नामित <code>[[/etc/shadow]]</code>) जिसे केवल विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा ही पढ़ा जा सकता है।
उस समय से तीन दशकों में, कंप्यूटर बहुत अधिक शक्तिशाली हो गए हैं। मूर के नियम को सामान्यतः सत्य माना गया है, इसलिए किसी दिए गए वित्तीय निवेश के लिए उपलब्ध कंप्यूटर की गति और क्षमता यूनिक्स के पहली बार लिखे जाने के बाद से 20 गुना से अधिक हो गई है। इसने लंबे समय से डीईएस-आधारित एल्गोरिदम को शब्दकोश आक्षेप के प्रति संवेदनशील बना दिया है, और यूनिक्स और यूनिक्स जैसी प्रणालियों जैसे कि [[लिनक्स]] ने लंबे समय तक "शैडो" फ़ाइलोंका उपयोग किया है, स्पष्टीकरण फ़ाइल (<code>/etc/passwd</code>) से मात्र पासवर्ड हैश मानों को गतिमान करना और एक फ़ाइल में (पारंपरिक रूप से नामित <code>[[/etc/shadow|/etc/shodow]]</code>) जिसे मात्र विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा ही पढ़ा जा सकता है।


पासवर्ड तोड़ने की कम्प्यूटेशनल लागत को बढ़ाने के लिए, कुछ यूनिक्स साइटों ने निजी तौर पर तदर्थ आधार पर एन्क्रिप्शन राउंड की संख्या में वृद्धि करना शुरू कर दिया।{{Citation needed|date=July 2011}} इसका उनके बनाने का साइड इफेक्ट था <code>crypt()</code> मानक के साथ असंगत <code>crypt()</code>: हैश का शाब्दिक रूप समान था, लेकिन अब एक अलग एल्गोरिथ्म का उपयोग करके गणना की गई थी। मानक ऑल-बिट्स-शून्य से प्रारंभिक ब्लॉक को संशोधित करके कुछ साइटों ने इस असंगति प्रभाव का भी लाभ उठाया।{{Citation needed|date=July 2011}} इससे हैशिंग की लागत में वृद्धि नहीं हुई, लेकिन इसका मतलब यह था कि मानक के आधार पर प्रीकंप्यूटेड हैश शब्दकोश {{mono|crypt()}} लागू नहीं किया जा सका।
पासवर्ड तोड़ने की संगणनात्मक लागत को बढ़ाने के लिए, कुछ यूनिक्स साइटों ने व्यक्तिगत रूप से तदर्थ आधार पर गूढ़लेखन आवर्तन की संख्या में वृद्धि करना प्रारम्भ कर दिया।{{Citation needed|date=July 2011}} इसका उनके <code>crypt (</code>) को मानक <code>crypt (</code>) के साथ असंगत बनाने का दुष्प्रभाव था: हैश का एक ही शाब्दिक रूप था, परन्तु अब अलग एल्गोरिदम का उपयोग करके गणना की गई थी। मानक सभी-बिट-शून्य से प्रारंभिक कक्ष को संशोधित करके कुछ साइटों ने इस असंगति प्रभाव का भी लाभ उठाया।{{Citation needed|date=July 2011}} इससे हैशिंग की लागत में वृद्धि नहीं हुई, परन्तु इसका अर्थ यह था कि मानक {{mono|crypt()}} के आधार पर पूर्व संगणित हैश शब्दकोशों को लागू नहीं किया जा सका।


=== बीएसडीआई ने डीईएस-आधारित योजना का विस्तार किया ===
=== बीएसडीआई ने डीईएस-आधारित पद्धति का विस्तार किया ===
[[बर्कले सॉफ्टवेयर डिजाइन]] ने क्लासिक डेस-आधारित योजना में मामूली संशोधन किया। बीएसडीआई ने नमक को 24 बिट्स तक बढ़ाया और राउंड की संख्या को चर बना दिया (2 तक<sup>24</sup>-1). राउंड की चुनी हुई संख्या संग्रहीत पासवर्ड हैश में एन्कोड की गई है, जो साइट द्वारा मूल योजना द्वारा उपयोग किए जाने वाले राउंड की संख्या को संशोधित करने पर उत्पन्न होने वाली असंगति से बचाती है। अंडरस्कोर से शुरू करके इन हैश की पहचान की जाती है (<code>_</code>), जिसके बाद 4 वर्ण राउंड की संख्या का प्रतिनिधित्व करते हैं, फिर नमक के लिए 4 वर्ण।
[[बर्कले सॉफ्टवेयर डिजाइन]] ने उत्कृष्ट डीईएस-आधारित पद्धति में साधारण संशोधन किया। बीएसडीआई ने साल्ट को 24 बिट तक बढ़ाया और आवर्तन की संख्या को चर बना दिया (2<sup>24</sup>-1)। आवर्तन की चुनी हुई संख्या संग्रहीत पासवर्ड हैश में विकोडित की गई है, जो साइट द्वारा मूल पद्धति द्वारा उपयोग किए जाने वाले आवर्तन की संख्या को संशोधित करने पर उत्पन्न होने वाली असंगति से बचाती है। इन हैश की पहचान अधोरेखांकन (<code>_</code>) से प्रारम्भ करके की जाती है, जिसके बाद 4 वर्ण आवर्तन की संख्या का प्रतिनिधित्व करते हैं, फिर साल्ट के लिए 4 वर्ण।


बीएसडीआई एल्गोरिदम भी लंबे पासवर्ड का समर्थन करता है, डीईएस का उपयोग करके प्रारंभिक लंबे पासवर्ड को मूल एल्गोरिदम द्वारा समर्थित आठ 7-बिट बाइट्स तक नीचे कर देता है।
बीएसडीआई एल्गोरिदम भी लंबे पासवर्ड का समर्थन करता है, डीईएस का उपयोग करके प्रारंभिक लंबे पासवर्ड को मूल एल्गोरिदम द्वारा समर्थित आठ 7-बिट बाइट तक नीचे कर देता है।


=== MD5-आधारित योजना ===
=== एमडी5-आधारित पद्धति ===
[[Poul-Henning Kamp]] ने MD5 संदेश डाइजेस्ट एल्गोरिथम पर आधारित एक बारोक और (उस समय) कम्प्यूटेशनल रूप से महंगा एल्गोरिथम डिज़ाइन किया। MD5 स्वयं पासवर्ड हैश के लिए अच्छी क्रिप्टोग्राफ़िक ताकत प्रदान करेगा, लेकिन यह प्रदान की जाने वाली ताकत के सापेक्ष गणना करने के लिए काफी तेज़ डिज़ाइन किया गया है। शब्दकोश हमलों को धीमा करने के लिए, क्रिप्ट () योजना की गणना करने के लिए महंगा होने के लिए डिज़ाइन किया गया है। MD5 पासवर्ड हैश का प्रिंट करने योग्य रूप से शुरू होता है <code>$1$</code>.
[[Poul-Henning Kamp|पॉल-हेनिंग कैंप]] ने एमडी5 संदेश संकलन एल्गोरिदम पर आधारित बारोक और (उस समय) संगणनात्मक रूप से बहुमूल्य एल्गोरिदम डिज़ाइन किया। एमडी5 स्वयं पासवर्ड हैश के लिए ठीक गूढ़लेखिकी दृढ़ता प्रदान करेगा, परन्तु यह प्रदान की जाने वाली दृढ़ता के सापेक्ष गणना करने के लिए अत्यधिक तीव्र डिज़ाइन किया गया है। शब्दकोश आक्षेप को मंद करने के लिए, क्रिप्ट () पद्धति की गणना करने के लिए बहुमूल्य होने के लिए डिज़ाइन किया गया है। एमडी5 पासवर्ड हैश का मुद्रण करने योग्य रूप <code>$1$</code> से प्रारम्भ होता है।


यह योजना उपयोगकर्ताओं को किसी भी लम्बाई के पासवर्ड की अनुमति देती है, और वे अपने प्लेटफ़ॉर्म द्वारा समर्थित किसी भी वर्ण का उपयोग कर सकते हैं (केवल 7-बिट ASCII नहीं)। (व्यावहारिक रूप से कई कार्यान्वयन पासवर्ड की लंबाई को सीमित करते हैं, लेकिन वे आम तौर पर किसी भी व्यक्ति द्वारा टाइप करने के इच्छुक होने की तुलना में लंबे समय तक पासवर्ड का समर्थन करते हैं।) नमक भी एक मनमाना स्ट्रिंग है, जो केवल वर्ण सेट विचारों द्वारा सीमित है।
यह पद्धति उपयोगकर्ताओं को किसी भी लम्बाई के पासवर्ड की अनुमति देती है, और वे अपने प्लेटफ़ॉर्म द्वारा समर्थित किसी भी वर्ण का उपयोग कर सकते हैं (मात्र 7-बिट एएससीआईआई नहीं)। (व्यावहारिक रूप से कई कार्यान्वयन पासवर्ड की लंबाई को सीमित करते हैं, परन्तु वे सामान्यतः किसी भी व्यक्ति द्वारा टाइप करने के इच्छुक होने की तुलना में लंबे समय तक पासवर्ड का समर्थन करते हैं।) साल्ट भी एक यादृच्छिक स्ट्रिंग है, जो मात्र संप्रतीक समुच्चय विचारों द्वारा सीमित है।


सबसे पहले पासफ़्रेज़ और नमक को एक साथ हैश किया जाता है, जिससे एक MD5 संदेश डाइजेस्ट प्राप्त होता है। फिर एक नए डाइजेस्ट का निर्माण किया जाता है, पासफ़्रेज़, नमक और पहले डाइजेस्ट को एक साथ मिलाते हुए, सभी जटिल रूप में। फिर इस डाइजेस्ट को एक फ़ंक्शन के एक हजार पुनरावृत्तियों के माध्यम से पारित किया जाता है जो इसे पासफ़्रेज़ और नमक के साथ एक तरह से दोहराता है जो कि राउंड के बीच भिन्न होता है। इन राउंड के अंतिम का आउटपुट परिणामी पासफ़्रेज़ हैश है।
सबसे पहले पासफ़्रेज़ और साल्ट को एक साथ हैश किया जाता है, जिससे एमडी5 संदेश संकलन प्राप्त होता है। फिर नवीन संकलन का निर्माण किया जाता है, जिसमें पासफ़्रेज़, साल्ट और पहले संकलन सभी को जटिल रूप में एक साथ हैश किया जाता है। फिर इस संकलन को प्रकार्य के एक हजार पुनरावृत्तियों के माध्यम से पारित किया जाता है जो इसे पासफ़्रेज़ और साल्ट के साथ एक प्रकार से दोहराता है जो कि आवर्तन के बीच भिन्न होते है। इन आवर्तन के अंतिम का निर्गम परिणामी पासफ़्रेज़ हैश है।


निश्चित पुनरावृति गणना के कारण इस योजना ने कम्प्यूटेशनल व्यय को खो दिया है जो एक बार आनंद लिया था और अब चक्रों की परिवर्तनीय संख्या का समर्थन किया जाता है। जून 2012 में, पॉल-हेनिंग काम्प ने एल्गोरिथम को असुरक्षित घोषित किया और उपयोगकर्ताओं को मजबूत पासवर्ड स्क्रैम्बलर में माइग्रेट करने के लिए प्रोत्साहित किया।<ref>{{cite web|url=http://phk.freebsd.dk/sagas/md5crypt_eol.html|title=Md5crypt Password scrambler is no longer considered safe by author — PHKs Bikeshed|website=Phk.freebsd.dk|access-date=2 December 2018|archive-url=https://web.archive.org/web/20180317164935/http://phk.freebsd.dk/sagas/md5crypt_eol.html|archive-date=17 March 2018}}</ref>
निश्चित पुनरावृति गणना के कारण इस पद्धति ने संगणनात्मक व्यय को खो दिया है जो एक बार आनंद लिया था और अब चक्रों की परिवर्तनीय संख्या का समर्थन किया जाता है। जून 2012 में, पॉल-हेनिंग काम्प ने एल्गोरिदम को असुरक्षित घोषित किया और उपयोगकर्ताओं को दृढ़ पासवर्ड संकेत अस्फुटक में अभिगमन करने के लिए प्रोत्साहित किया।<ref>{{cite web|url=http://phk.freebsd.dk/sagas/md5crypt_eol.html|title=Md5crypt Password scrambler is no longer considered safe by author — PHKs Bikeshed|website=Phk.freebsd.dk|access-date=2 December 2018|archive-url=https://web.archive.org/web/20180317164935/http://phk.freebsd.dk/sagas/md5crypt_eol.html|archive-date=17 March 2018}}</ref>




=== ब्लोफिश-आधारित योजना ===
=== ब्लोफिश-आधारित पद्धति ===
{{Main|bcrypt}}
{{Main|बी क्रिप्ट}}
[[नील्स प्रोवोस]] और डेविड माज़िएरेस ने [[ब्लोफिश (सिफर)]] पर आधारित एक क्रिप्ट () योजना को डिजाइन किया, जिसे बीक्रिप्ट कहा जाता है, और इसे 1999 में [[यूसेनिक्स]] में प्रस्तुत किया।<ref>{{cite journal | url = http://www.usenix.org/events/usenix99/provos/provos_html/node1.html | title = एक भविष्य-अनुकूलनीय पासवर्ड योजना| first = Niels | last = Provos |author2=Mazières, David | year = 1999 | journal = Proceedings of 1999 USENIX Annual Technical Conference | pages = 81–92}}</ref> इन हैश का प्रिंट करने योग्य रूप से शुरू होता है <code>$2$</code>, <code>$2a$</code>, <code>$2b$</code>, <code>$2x$</code> या <code>$2y$</code> एल्गोरिदम के किस संस्करण का उपयोग किया जाता है इसके आधार पर:
[[नील्स प्रोवोस]] और डेविड माज़िएरेस ने [[ब्लोफिश (सिफर)|ब्लोफिश (सिफर]]) पर आधारित क्रिप्ट () पद्धति को डिजाइन किया, जिसे बीक्रिप्ट कहा जाता है, और इसे 1999 में [[यूसेनिक्स]] में प्रस्तुत किया।<ref>{{cite journal | url = http://www.usenix.org/events/usenix99/provos/provos_html/node1.html | title = एक भविष्य-अनुकूलनीय पासवर्ड योजना| first = Niels | last = Provos |author2=Mazières, David | year = 1999 | journal = Proceedings of 1999 USENIX Annual Technical Conference | pages = 81–92}}</ref> इन हैश का मुद्रण करने योग्य रूप <code>$2$</code>, <code>$2a$</code>, <code>$2b$</code>, <code>$2x$</code> या <code>$2y$</code> से प्रारम्भ होते है, यह इस बात पर निर्भर करता है कि एल्गोरिदम के किस संस्करण का उपयोग किया जाता है:


* <code>$2$</code>{{snd}} अप्रचलित।
* <code>$2$</code>{{snd}} अप्रचलित।
* <code>$2a$</code>{{snd}} इस योजना की पहचान करने के लिए उपयोग की जाने वाली वर्तमान कुंजी। चूंकि 2011 में एक गैर-ओपनबीएसडी में एक बड़ी सुरक्षा खामी का पता चला था {{tt|crypt_blowfish}} एल्गोरिथम का कार्यान्वयन,<ref>{{cite web
* <code>$2a$</code>{{snd}} इस पद्धति की पहचान करने के लिए उपयोग की जाने वाली वर्तमान कुंजी। चूंकि 2011 में गैर-ओपनबीएसडी {{tt|crypt_blowfish}} कार्यान्वयन में एक प्रमुख सुरक्षा दोष की खोज की गई थी,<ref>{{cite web
  | url = http://www.openwall.com/lists/announce/2011/06/21/1
  | url = http://www.openwall.com/lists/announce/2011/06/21/1
  | title = crypt_blowfish 1.1; Owl glibc security update | date = 2011-06-21
  | title = crypt_blowfish 1.1; Owl glibc security update | date = 2011-06-21
  | first = Solar | last = Designer
  | first = Solar | last = Designer
}} See also {{CVE|2011-2483}}.</ref> इस स्ट्रिंग द्वारा संकेतित हैश अब अस्पष्ट हैं और त्रुटिपूर्ण कार्यान्वयन, या बाद के निश्चित, कार्यान्वयन द्वारा उत्पन्न हो सकते हैं। गैर-ASCII (8-बिट-सेट) वर्ण वाले कुछ पासवर्ड स्ट्रिंग्स द्वारा त्रुटि को ट्रिगर किया जा सकता है।
}} See also {{CVE|2011-2483}}.</ref> इस स्ट्रिंग द्वारा संकेतित हैश अब अस्पष्ट हैं और त्रुटिपूर्ण कार्यान्वयन, या बाद के निश्चित, कार्यान्वयन द्वारा उत्पन्न हो सकते हैं। गैर-एएससीआईआई (8-बिट-समूह) वर्ण वाले कुछ पासवर्ड स्ट्रिंग द्वारा त्रुटि को ट्रिगर किया जा सकता है।
* <code>$2b$</code>{{snd}} रैपअराउंड समस्या को कम करने के लिए हाल के OpenBSD कार्यान्वयन द्वारा उपयोग किया जाता है।<ref>{{Cite web|url=http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/bcrypt.c?rev=1.27&content-type=text/x-cvsweb-markup|title=src/lib/libc/crypt/bcrypt.c – view – 1.27|website=Cvsweb.openbsd.org|access-date=2016-05-14}}</ref> एल्गोरिथ्म के पिछले संस्करणों में लंबे पासवर्ड की समस्या है। डिज़ाइन के अनुसार, लंबे पासवर्ड को 72 अक्षरों में काट दिया जाता है, लेकिन कुछ पासवर्ड लंबाई के साथ एक बाइट पूर्णांक रैपराउंड समस्या होती है, जिसके परिणामस्वरूप कमजोर हैश होता है।<ref>{{cite web
* <code>$2b$</code>{{snd}} परिवेष्टन समस्या को कम करने के लिए वर्तमान के ओपनबीएसडी कार्यान्वयन द्वारा उपयोग किया जाता है।<ref>{{Cite web|url=http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/bcrypt.c?rev=1.27&content-type=text/x-cvsweb-markup|title=src/lib/libc/crypt/bcrypt.c – view – 1.27|website=Cvsweb.openbsd.org|access-date=2016-05-14}}</ref> एल्गोरिदम के पिछले संस्करणों में लंबे पासवर्ड की समस्या है। डिज़ाइन के अनुसार, लंबे पासवर्ड को 72 अक्षरों में काट दिया जाता है, परन्तु कुछ पासवर्ड लंबाई के साथ एक बाइट पूर्णांक परिवेष्टन समस्या होती है, जिसके परिणामस्वरूप मंद हैश होते है।<ref>{{cite web
  | url = http://www.openwall.com/lists/oss-security/2012/01/02/4
  | url = http://www.openwall.com/lists/oss-security/2012/01/02/4
  | title = OpenBSD bcrypt 8-bit key_len wraparound | date = 2012-01-02
  | title = OpenBSD bcrypt 8-bit key_len wraparound | date = 2012-01-02
  | first = Solar | last = Designer
  | first = Solar | last = Designer
}}</ref>
}}</ref>
* <code>$2x$</code>{{snd}} के बाद एक ध्वज जोड़ा गया {{tt|crypt_blowfish}} बग खोज। पुराने हैश का नाम बदलकर किया जा सकता है <code>$2x$</code> यह इंगित करने के लिए कि वे टूटे हुए एल्गोरिथम के साथ उत्पन्न हुए थे। ये हैश अभी भी कमजोर हैं, लेकिन कम से कम यह स्पष्ट है कि उन्हें उत्पन्न करने के लिए किस एल्गोरिथम का उपयोग किया गया था।
* <code>$2x$</code>{{snd}} {{tt|crypt_blowfish}} की खोज के बाद फ्लैग जोड़ा गया। प्राचीन हैश का नाम बदलकर <code>$2x$</code> किया जा सकता है यह इंगित करने के लिए कि वे टूटे हुए एल्गोरिदम के साथ उत्पन्न हुए थे। ये हैश अभी भी मंद हैं, परन्तु कम से कम यह स्पष्ट है कि उन्हें उत्पन्न करने के लिए किस एल्गोरिदम का उपयोग किया गया था।
* <code>$2y$</code>{{snd}} में एक झंडा {{tt|crypt_blowfish}} स्पष्ट रूप से नए, सही एल्गोरिथम का उपयोग करने के लिए। बग से पीड़ित पुराने कार्यान्वयन पर, <code>$2y$</code> बस काम नहीं करेगा। एक नए, निश्चित कार्यान्वयन पर, यह उपयोग करने के समान परिणाम देगा <code>$2b$</code>.
* <code>$2y$</code>{{snd}} स्पष्ट रूप से नवीन, संशोधित एल्गोरिदम का उपयोग करने के लिए {{tt|crypt_blowfish}} में एक फ्लैग। बग से पीड़ित प्राचीन कार्यान्वयन पर, <code>$2y$</code> मात्रकार्य नहीं करेगा। एक नवीन, निश्चित कार्यान्वयन पर, यह <code>$2b$</code> का उपयोग करने के समान परिणाम देगा।


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


कीइंग के राउंड की संख्या दो की शक्ति है, जो एल्गोरिथम का एक इनपुट है। संख्या टेक्स्ट हैश में एन्कोडेड है, उदा। <code>$2y$10...</code>
कुंजीयन के आवर्तन की संख्या दो का सामर्थ्य है, जो एल्गोरिदम का एक निवेश है। संख्या टेक्स्ट हैश में विकोडित की गई है, उदाहरण के लिए <code>$2y$10...</code>




=== एनटी हैश योजना ===
=== एनटी हैश पद्धति ===
[[MS-CHAP]] के माध्यम से NT खातों के साथ आसान संगतता प्रदान करने के लिए FreeBSD ने [[NTLM]] हैश एल्गोरिथम के लिए समर्थन लागू किया।<ref>{{cite web|url=http://www.mail-archive.com/freebsd-current@freebsd.org/msg52586.html|title=NT MD4 password hash as new password encryption method for FreeBSD|website=Mail-archive.com|access-date=2 December 2018}}</ref> एनटी-हैश एल्गोरिथम कमजोर होने के लिए जाना जाता है, क्योंकि यह बिना किसी नमक के बहिष्कृत एमडी 4 हैश एल्गोरिथम का उपयोग करता है।<ref>{{cite web|url=http://davenport.sourceforge.net/ntlm.html#theNtlmResponse|title=एनटीएलएम प्रमाणीकरण प्रोटोकॉल और सुरक्षा सहायता प्रदाता|website=Davenport.sourceforge.net|access-date=2 December 2018}}</ref> फ्रीबीएसडी ने इस्तेमाल किया <code>$3$</code> इसके लिए उपसर्ग। इसके उपयोग की अनुशंसा नहीं की जाती है, क्योंकि यह आसानी से टूट जाता है।<ref name=fbsd3>{{man|3|crypt|FreeBSD}}</ref>
[[MS-CHAP|एमएस-चाप]] के माध्यम से एनटी स्पष्टीकरण के साथ सरल संगतता प्रदान करने के लिए फ्रीबीएसडी ने [[NTLM|एनटीएलएम]] हैश एल्गोरिदम के लिए समर्थन लागू किया।<ref>{{cite web|url=http://www.mail-archive.com/freebsd-current@freebsd.org/msg52586.html|title=NT MD4 password hash as new password encryption method for FreeBSD|website=Mail-archive.com|access-date=2 December 2018}}</ref> एनटी-हैश एल्गोरिदम मंद होने के लिए जाना जाता है, क्योंकि यह बिना किसी साल्ट के बहिष्कृत एमडी 4 हैश एल्गोरिदम का उपयोग करते है।<ref>{{cite web|url=http://davenport.sourceforge.net/ntlm.html#theNtlmResponse|title=एनटीएलएम प्रमाणीकरण प्रोटोकॉल और सुरक्षा सहायता प्रदाता|website=Davenport.sourceforge.net|access-date=2 December 2018}}</ref> फ्रीबीएसडी ने इसके लिए <code>$3$</code>का उपयोग किया। इसके उपयोग की अनुशंसा नहीं की जाती है, क्योंकि यह सरलता से टूट जाता है।<ref name=fbsd3>{{man|3|crypt|FreeBSD}}</ref>




=== SHA2-आधारित योजना ===
=== एसएचए2-आधारित पद्धति ===
आमतौर पर इस्तेमाल की जाने वाली MD5 आधारित योजना पर हमला करना आसान हो गया है क्योंकि कंप्यूटर की शक्ति बढ़ गई है। हालांकि ब्लोफिश-आधारित प्रणाली में राउंड जोड़ने का विकल्प होता है और इस प्रकार यह एक चुनौतीपूर्ण पासवर्ड एल्गोरिदम बना रहता है, यह राष्ट्रीय मानक और प्रौद्योगिकी-अनुमोदित एल्गोरिदम का उपयोग नहीं करता है। इन तथ्यों के आलोक में, [[Red Hat]] के [[Ulrich Drepper]] ने SHA-2 (SHA-256 और SHA-512) हैश फ़ंक्शंस पर आधारित एक योजना बनाने का प्रयास किया।<ref name="shacrypt">{{cite web  
सामान्यतः उपयोग की जाने वाली एमडी5 आधारित पद्धति पर आक्षेप करना सरल हो गया है क्योंकि कंप्यूटर का सामर्थ्य बढ़ गया है। यद्यपि ब्लोफिश-आधारित प्रणाली में आवर्तन जोड़ने का विकल्प होता है और इस प्रकार यह चुनौतीपूर्ण पासवर्ड एल्गोरिदम बना रहता है, यह राष्ट्रीय मानक और प्रौद्योगिकी-अनुमोदित एल्गोरिदम का उपयोग नहीं करता है। इन तथ्यों के आलोक में, [[Red Hat|रेड हैट]] के [[Ulrich Drepper|उलरिच ड्रेपर]] ने एसएचए-2 (एसएचए-256 और एसएचए-512) हैश प्रकार्यों पर आधारित पद्धति बनाने का प्रयास किया।<ref name="shacrypt">{{cite web  
| first = Ulrich  
| first = Ulrich  
| last = Drepper  
| last = Drepper  
Line 169: Line 170:
| url = http://people.redhat.com/drepper/sha-crypt.html
| url = http://people.redhat.com/drepper/sha-crypt.html
| df = dmy-all
| df = dmy-all
}}</ref> इन हैश का प्रिंट करने योग्य रूप से शुरू होता है <code>$5$</code> (SHA-256 के लिए) या <code>$6$</code> (SHA-512 के लिए) जिसके आधार पर SHA संस्करण का उपयोग किया जाता है। इसका डिज़ाइन MD5-आधारित क्रिप्ट के समान है, कुछ उल्लेखनीय अंतरों के साथ:<ref name="shacrypt" />
}}</ref> इन हैश का मुद्रण करने योग्य रूप <code>$5$</code> (एसएचए-256 के लिए) या <code>$6$</code> (एसएचए-512 के लिए) से प्रारम्भ होते है जिसके आधार पर एसएचए संस्करण का उपयोग किया जाता है। इसका डिज़ाइन एमडी5-आधारित क्रिप्ट के समान है, कुछ उल्लेखनीय अंतरों के साथ:<ref name="shacrypt" />


* यह कुछ ही चरणों में लगातार डेटा जोड़ने से बचता है।
* यह कुछ ही चरणों में निरंतर डेटा जोड़ने से बचता है।
* MD5 एल्गोरिद्म बार-बार पासवर्ड का पहला अक्षर जोड़ देगा;{{Citation needed|date=April 2010}} इस कदम को काफी बदल दिया गया था।
* एमडी5 एल्गोरिद्म बार-बार पासवर्ड का पहला अक्षर जोड़ देगा;{{Citation needed|date=April 2010}} इस चरण को अत्यधिक बदल दिया गया था।
* सन माइक्रोसिस्टम्स से प्रेरित | सन का क्रिप्ट () कार्यान्वयन, पुनरावृत्तियों की संख्या निर्दिष्ट करने के लिए कार्यक्षमता (राउंड) एल्गोरिथम प्रदर्शन में मुख्य लूप जोड़ा गया था<ref>{{cite web | author = Sun Microsystems | title = crypt_sunmd5(5) man page | url = http://docs.sun.com/app/docs/doc/816-5175/6mbba7evg | access-date = 2008-03-05 | archive-url = https://web.archive.org/web/20080416021006/http://docs.sun.com/app/docs/doc/816-5175/6mbba7evg | archive-date = 2008-04-16 }}</ref><ref>{{cite web | title = OpenSolaris, Pluggable Crypt, and the SunMD5 Password Hash Algorithm | first = Alec | last = Muffett | url = http://dropsafe.crypticide.com/article/1389 | date = 2005-12-05 | access-date = 2012-08-11}}</ref>
* सन के क्रिप्ट () कार्यान्वयन से प्रेरित होकर, एल्गोरिदम निष्पादन में मुख्य पाशन पुनरावृत्तियों (आवर्तन) की संख्या निर्दिष्ट करने के लिए कार्यक्षमता जोड़ी गई थी<ref>{{cite web | author = Sun Microsystems | title = crypt_sunmd5(5) man page | url = http://docs.sun.com/app/docs/doc/816-5175/6mbba7evg | access-date = 2008-03-05 | archive-url = https://web.archive.org/web/20080416021006/http://docs.sun.com/app/docs/doc/816-5175/6mbba7evg | archive-date = 2008-04-16 }}</ref><ref>{{cite web | title = OpenSolaris, Pluggable Crypt, and the SunMD5 Password Hash Algorithm | first = Alec | last = Muffett | url = http://dropsafe.crypticide.com/article/1389 | date = 2005-12-05 | access-date = 2012-08-11}}</ref>
* पुनरावृत्तियों की संख्या डिफ़ॉल्ट रूप से 5000 है, न्यूनतम 1000 और अधिकतम 999,999,999।<ref name="shacryptcode"/>
* पुनरावृत्तियों की संख्या स्वतः निर्धारित रूप से 5000 है, न्यूनतम 1000 और अधिकतम 999,999,999।<ref name="shacryptcode"/>


विनिर्देश और नमूना कोड सार्वजनिक डोमेन में जारी किए गए हैं; इसे अक्सर SHAcrypt के रूप में संदर्भित किया जाता है।<ref name="shacryptcode">{{cite web | url = http://www.akkadia.org/drepper/SHA-crypt.txt | title = Unix crypt using SHA-256 and SHA-512 | first = Ulrich | last = Drepper }}</ref>
विनिर्देश और प्रतिदर्श कोड सार्वजनिक डोमेन में जारी किए गए हैं; इसे प्रायः एसएचएक्रिप्ट के रूप में संदर्भित किया जाता है।<ref name="shacryptcode">{{cite web | url = http://www.akkadia.org/drepper/SHA-crypt.txt | title = Unix crypt using SHA-256 and SHA-512 | first = Ulrich | last = Drepper }}</ref>




=== अन्य हैश ===
=== अन्य हैश ===
; {{code|$y$}}
; {{code|$y$}}
: Ye[[scrypt]], scrypt का एक विस्तार है ({{code|$7$}}) और एक पीएचसी फाइनलिस्ट। इसका उपयोग मौजूदा योजनाओं के विकल्प के रूप में कई [[लिनक्स वितरण]]ों में किया जाता है।<ref>{{cite web |title=FESCo Says "Yes" To Fedora 35 Using Yescrypt For Hashing Shadow Passwords - Phoronix |url=https://www.phoronix.com/scan.php?page=news_item&px=Fedora-35-Yescrypt-Yes |website=www.phoronix.com}}</ref> इस हैश का उपयोग करने के लिए, {{code|libcrypt}} को glibc से libxcrypt प्रोजेक्ट से पिछड़े-संगत से बदल दिया गया है।<ref>{{cite web |title=Changes/yescrypt as default hashing method for shadow - Fedora Project Wiki |url=https://fedoraproject.org/wiki/Changes/yescrypt_as_default_hashing_method_for_shadow |website=libxcrypt: Is already capable for computing yescrypt hashes since v4.3.}}</ref>
: यसक्रिप्ट, क्रिप्ट ({{code|$7$}}) का एक विस्तार है और पीएचसी निणार्यक है। इसका उपयोग वर्तमान पद्धतिओं के विकल्प के रूप में कई [[लिनक्स वितरण|लिनक्स वितरणों]] में किया जाता है।<ref>{{cite web |title=FESCo Says "Yes" To Fedora 35 Using Yescrypt For Hashing Shadow Passwords - Phoronix |url=https://www.phoronix.com/scan.php?page=news_item&px=Fedora-35-Yescrypt-Yes |website=www.phoronix.com}}</ref> इस हैश का उपयोग करने के लिए, जीलिबसी से {{code|libcrypt}} को लिबक्सक्रिप्ट प्रोजेक्ट से पिछड़े-संगत के साथ बदल दिया गया है।<ref>{{cite web |title=Changes/yescrypt as default hashing method for shadow - Fedora Project Wiki |url=https://fedoraproject.org/wiki/Changes/yescrypt_as_default_hashing_method_for_shadow |website=libxcrypt: Is already capable for computing yescrypt hashes since v4.3.}}</ref>
; {{code|$argon2d$}}, {{code|$argon2i$}}, {{code|$argon2ds$}}
; {{code|$argon2d$}}, {{code|$argon2i$}}, {{code|$argon2ds$}}
: ये [[Argon2]] एल्गोरिथम के लिए PHC द्वारा निर्दिष्ट नाम हैं, लेकिन व्यापक रूप से उपयोग किए जाने वाले प्रतीत नहीं होते हैं।
: ये [[Argon2|आर्गन2]] एल्गोरिदम के लिए पीएचसी द्वारा निर्दिष्ट नाम हैं, परन्तु व्यापक रूप से उपयोग किए जाने वाले प्रतीत नहीं होते हैं।


अतिरिक्त प्रारूप, यदि कोई हो, कार्यान्वयन के [[मैन पेज]] में वर्णित हैं।<ref>
अतिरिक्त प्रारूप, यदि कोई हो, कार्यान्वयन के [[मैन पेज|मैन पृष्ठ]] में वर्णित हैं।<ref>
* {{man|5|crypt|ManKier}} &ndash; libxcrypt implementation
* {{man|5|crypt|ManKier}} &ndash; libxcrypt implementation
* {{man|3|crypt|FreeBSD}}
* {{man|3|crypt|FreeBSD}}
Line 191: Line 192:




==== पुरातन यूनिक्स योजनाएं ====
==== पुरातन यूनिक्स पद्धति ====
BigCrypt, HP-UX, Digital Unix, और OSF/1 पर प्रयुक्त DES-Crypt का संशोधित संस्करण है। इसके और DES के बीच मुख्य अंतर यह है कि BigCrypt एक पासवर्ड के सभी वर्णों का उपयोग करता है, न कि केवल पहले 8 का, और इसकी एक चर लंबाई हैश है।<ref>{{cite web|url=https://pythonhosted.org/passlib/lib/passlib.hash.bigcrypt.html|title=passlib.hash.bigcrypt - BigCrypt — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref>
बिगक्रिप्ट, एचपी-यूएक्स, डिजिटल यूनिक्स, और ओएसएफ/1 पर प्रयुक्त डीईएस-क्रिप्ट का संशोधित संस्करण है। इसके और डीईएस के बीच मुख्य अंतर यह है कि बिगक्रिप्ट पासवर्ड के सभी वर्णों का उपयोग करते है, न कि मात्र पहले 8 का, और इसकी चर लंबाई हैश है।<ref>{{cite web|url=https://pythonhosted.org/passlib/lib/passlib.hash.bigcrypt.html|title=passlib.hash.bigcrypt - BigCrypt — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref>
Crypt16 DES का मामूली संशोधन है, जो 16 अक्षरों तक के पासवर्ड की अनुमति देता है। अल्ट्रिक्स और ट्रू64 पर इस्तेमाल किया गया।<ref>{{cite web|url=https://pythonhosted.org/passlib/lib/passlib.hash.crypt16.html|title=passlib.hash.crypt16 - Crypt16 — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref>


क्रिप्ट16 डीईएस का साधारण संशोधन है, जो 16 अक्षरों तक के पासवर्ड की अनुमति देता है। अल्ट्रिक्स और ट्रू64 पर उपयोग किया गया।<ref>{{cite web|url=https://pythonhosted.org/passlib/lib/passlib.hash.crypt16.html|title=passlib.hash.crypt16 - Crypt16 — Passlib v1.7.1 Documentation|website=Pythonhosted.org|access-date=2 December 2018}}</ref>


== ऑपरेटिंग सिस्टम में सहायता ==
 
 
== प्रचालन तंत्र में सहायता ==
{| class="wikitable" style="margin-bottom: 10px;"
{| class="wikitable" style="margin-bottom: 10px;"
!Scheme id
!पद्धति आईडी
!Scheme
!पद्धति
!Linux ([[GNU C Library|glibc]])
!लिनक्स ([[GNU C Library|जीलिबसी]])  
!FreeBSD
!फ्रीबीएसडी
!NetBSD
!नेटबीएसडी
!OpenBSD
!ओपनबीएसडी
!Solaris
!सोलारिस
!MacOS
!मैकओएस
|-
|-
|
|
|DES
|डीईएस
|{{yes}}<ref name="debian-manpage-crypt">{{cite web|url=https://manpages.debian.org/experimental/libcrypt-dev/crypt.5.en.html|title=Debian manpage crypt|website=manpages.debian.org|access-date=11 Jan 2022}}</ref>
|{{yes}}<ref name="debian-manpage-crypt">{{cite web|url=https://manpages.debian.org/experimental/libcrypt-dev/crypt.5.en.html|title=Debian manpage crypt|website=manpages.debian.org|access-date=11 Jan 2022}}</ref>
|{{yes}}
|{{yes}}
Line 217: Line 220:
|-
|-
|_
|_
|BSDi
|बीएसडीआई
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}
|{{yes}}
Line 226: Line 229:
|-
|-
|1
|1
|MD5
|एमडी5
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}
|{{yes}}
Line 235: Line 238:
|-
|-
|2, 2a, 2b, 2x, 2y
|2, 2a, 2b, 2x, 2y
|bcrypt
|बीक्रिप्ट
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}
|{{yes}}
Line 244: Line 247:
|-
|-
|3
|3
|NTHASH
|एनटीहैश
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}
|{{yes}}
Line 253: Line 256:
|-
|-
|5
|5
|SHA-256
|एसएचए-256
|{{yes|2.7+}}<ref name="debian-manpage-crypt" />
|{{yes|2.7+}}<ref name="debian-manpage-crypt" />
|{{yes|8.3+}}
|{{yes|8.3+}}
Line 262: Line 265:
|-
|-
|6
|6
|SHA-512
|एसएचए-512
|{{yes|2.7+}}<ref name="debian-manpage-crypt" />
|{{yes|2.7+}}<ref name="debian-manpage-crypt" />
|{{yes|8.3+}}
|{{yes|8.3+}}
Line 271: Line 274:
|-
|-
|7
|7
|scrypt
|एसक्रिप्ट
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}
|{{yes}}
Line 279: Line 282:
|{{no}}
|{{no}}
|-
|-
|md5
|एमडी5
|Solaris MD5
|सोलारिस एमडी5
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{no}}
|{{no}}
Line 288: Line 291:
|{{no}}
|{{no}}
|-
|-
|sha1
|एसएचए1
|PBKDF1 with SHA1
|पीबीकेडीएफ1 के साथ एसएचए1
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{no}}
|{{no}}
Line 297: Line 300:
|{{no}}
|{{no}}
|-
|-
|gy
|जीवाई
|gost-yescrypt
|गोस्त-यसक्रिप्ट
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{no}}
|{{no}}
Line 307: Line 310:
|-
|-
|y
|y
|yescrypt
|यसक्रिप्ट
|{{yes}}<ref name="debian-manpage-crypt" />
|{{yes}}<ref name="debian-manpage-crypt" />
|{{no}}
|{{no}}
Line 318: Line 321:


=== लिनक्स ===
=== लिनक्स ===
लगभग सभी लिनक्स वितरणों द्वारा उपयोग की जाने वाली [[जीएनयू सी लाइब्रेरी]] क्रिप्ट फ़ंक्शन का कार्यान्वयन प्रदान करती है जो डीईएस, एमडी5 और (संस्करण 2.7 के बाद से) एसएचए-2 आधारित हैशिंग एल्गोरिदम का समर्थन करती है।
लगभग सभी लिनक्स वितरणों द्वारा उपयोग की जाने वाली [[जीएनयू सी लाइब्रेरी]] क्रिप्ट प्रकार्य का कार्यान्वयन प्रदान करती है जो डीईएस, एमडी5 और (संस्करण 2.7 के बाद से) एसएचए-2 आधारित हैशिंग एल्गोरिदम का समर्थन करती है। जीलिबसी अनुरक्षक, उलरिच ड्रेपर ने बीक्रिप्ट (पद्धति 2) समर्थन को अस्वीकार कर दिया क्योंकि यह राष्ट्रीय मानक और प्रौद्योगिकी संस्थान द्वारा अनुमोदित नहीं है।<ref>{{cite web|url=https://access.redhat.com/articles/1519843|title=bcrypt support for passwords in /etc/shadow - Red Hat Customer Portal|website=Access.redhat.com|access-date=2 December 2018}}</ref> बिना बीक्रिप्ट वाले प्रणाली के लिए सार्वजनिक डोमेन क्रिप्ट_ब्लोफिश लाइब्रेरी उपलब्ध है। इसे [[एसयूएसई लिनक्स]] में ग्लिबैक में एकीकृत किया गया है।<ref>{{cite web |title=आपके सॉफ़्टवेयर और आपके सर्वर के लिए bcrypt पासवर्ड हैशिंग ("पासवर्ड एन्क्रिप्शन")|url=https://www.openwall.com/crypt/ |website=www.openwall.com}}</ref> इसके अतिरिक्त, उपर्युक्त लिबएक्सक्रिप्ट का उपयोग यसक्रिप्ट-सक्षम प्रणाली पर जीलिबसी crypt () को बदलने के लिए किया जाता है।
glibc अनुरक्षक, Ulrich Drepper ने bcrypt (स्कीम 2) समर्थन को अस्वीकार कर दिया क्योंकि यह राष्ट्रीय मानक और प्रौद्योगिकी संस्थान द्वारा अनुमोदित नहीं है।<ref>{{cite web|url=https://access.redhat.com/articles/1519843|title=bcrypt support for passwords in /etc/shadow - Red Hat Customer Portal|website=Access.redhat.com|access-date=2 December 2018}}</ref> बिना bcrypt वाले सिस्टम के लिए एक सार्वजनिक डोमेन crypt_blowfish लाइब्रेरी उपलब्ध है। इसे [[एसयूएसई लिनक्स]] में ग्लिबैक में एकीकृत किया गया है।<ref>{{cite web |title=आपके सॉफ़्टवेयर और आपके सर्वर के लिए bcrypt पासवर्ड हैशिंग ("पासवर्ड एन्क्रिप्शन")|url=https://www.openwall.com/crypt/ |website=www.openwall.com}}</ref> इसके अलावा, उपर्युक्त libxcrypt का उपयोग Yescrypt-सक्षम सिस्टम पर glibc crypt() को बदलने के लिए किया जाता है।


[[musl]] C लाइब्रेरी स्कीम 1, 2, 5 और 6 के साथ-साथ परंपरा DES स्कीम का समर्थन करती है। पारंपरिक डीईएस कोड बीएसडी फ्रीसेक पर आधारित है, जिसमें ग्लिबक यूएफसी-क्रिप्ट के साथ संगत होने के लिए संशोधन किया गया है।<ref>{{cite web |title=crypt_r.c\crypt\src - musl - musl - an implementation of the standard library for Linux-based systems |url=https://git.musl-libc.org/cgit/musl/tree/src/crypt/crypt_r.c |website=git.musl-libc.org}}</ref>
[[musl|मुस्ल]] सी लाइब्रेरी पद्धति 1, 2, 5 और 6 के साथ-साथ परंपरा डीईएस पद्धति का समर्थन करती है। पारंपरिक डीईएस कोड बीएसडी फ्रीसेक पर आधारित है, जिसमें ग्लिबक यूएफसी-क्रिप्ट के साथ संगत होने के लिए संशोधन किया गया है।<ref>{{cite web |title=crypt_r.c\crypt\src - musl - musl - an implementation of the standard library for Linux-based systems |url=https://git.musl-libc.org/cgit/musl/tree/src/crypt/crypt_r.c |website=git.musl-libc.org}}</ref>




=== मैकोज़ ===
=== मैकओएस ===
डार्विन के मूल निवासी <code>crypt()</code> सीमित कार्यक्षमता प्रदान करता है, केवल डीईएस और बीएसडीआई का समर्थन करता है। OS X अपने स्वयं के पासवर्ड हैश के लिए कुछ सिस्टम का उपयोग करता है, जो पुराने NeXTStep netinfo से लेकर नई डायरेक्टरी सर्विसेज (ds) सिस्टम तक है।<ref>{{cite web|url=http://www.dribin.org/dave/blog/archives/2006/04/07/os_x_passwords/|title=कैसे मैक ओएस एक्स पासवर्ड प्रमाणीकरण लागू करता है|website=Dribin.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=http://www.onlinehashcrack.com/how-to-extract-hashes-crack-mac-osx-passwords.php|title=मैक ओएस एक्स पासवर्ड कैसे क्रैक करें - ऑनलाइन हैश क्रैक|website=Onlinehashcrack.com|access-date=2 December 2018}}</ref>
डार्विन के जन्मज <code>crypt (</code>) सीमित कार्यक्षमता प्रदान करते है, मात्र डीईएस और बीएसडीआई का समर्थन करता है। ओएस एक्स अपने स्वयं के पासवर्ड हैश के लिए कुछ प्रणाली का उपयोग करते है, जो प्राचीन नेक्सट्स्टेप नेटइन्फो से लेकर नवीन निर्देशिका सेवाएं (डीएस) प्रणाली तक है।<ref>{{cite web|url=http://www.dribin.org/dave/blog/archives/2006/04/07/os_x_passwords/|title=कैसे मैक ओएस एक्स पासवर्ड प्रमाणीकरण लागू करता है|website=Dribin.org|access-date=2 December 2018}}</ref><ref>{{cite web|url=http://www.onlinehashcrack.com/how-to-extract-hashes-crack-mac-osx-passwords.php|title=मैक ओएस एक्स पासवर्ड कैसे क्रैक करें - ऑनलाइन हैश क्रैक|website=Onlinehashcrack.com|access-date=2 December 2018}}</ref>




== यह भी देखें ==
== यह भी देखें ==
* [[कुंजी व्युत्पत्ति समारोह]]
* [[कुंजी व्युत्पत्ति समारोह|कुंजी व्युत्पत्ति नवीन]]
* नमक (क्रिप्टोग्राफी)
* साल्ट (गूढ़लेखिकी)  


== संदर्भ ==
== संदर्भ ==
Line 337: Line 339:


== बाहरी संबंध ==
== बाहरी संबंध ==
* [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/libc/gen/crypt.c Source code for crypt(3)] from Seventh Edition Unix (implements proposed DES)
* [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/libc/gen/crypt.c Source code for crypt (3]) from Seventh Edition Unix (implements proposed डीईएस)  
* [http://openwall.info/wiki/john/sample-hashes Sample password hash encoding strings]
* [http://openwall.info/wiki/john/sample-hashes Sample password hash encoding strings]
* [http://www.zer7.com/software/cryptsharp .NET crypt implementation]
* [http://www.zer7.com/software/cryptsharp .NET crypt implementation]


{{cryptography navbox|hash}}
{{cryptography navbox|hash}}
[[Category: पासवर्ड प्रमाणीकरण]] [[Category: टूटी हुई क्रिप्टोग्राफी एल्गोरिदम]] [[Category: क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] [[Category: कंप्यूटर अभिगम नियंत्रण प्रोटोकॉल]] [[Category: प्रमुख व्युत्पत्ति कार्य]]
   


[[cs:Crypt (Unix)]]
[[cs:Crypt (Unix)]]


 
[[Category:All articles with unsourced statements]]
 
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category: Machine Translated Page]]
[[Category:Articles with unsourced statements from April 2010]]
[[Category:Articles with unsourced statements from July 2011]]
[[Category:Collapse templates]]
[[Category:Created On 11/05/2023]]
[[Category:Created On 11/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with ignored display titles]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:कंप्यूटर अभिगम नियंत्रण प्रोटोकॉल]]
[[Category:क्रिप्टोग्राफ़िक हैश फ़ंक्शन]]
[[Category:टूटी हुई क्रिप्टोग्राफी एल्गोरिदम]]
[[Category:पासवर्ड प्रमाणीकरण]]
[[Category:प्रमुख व्युत्पत्ति कार्य]]

Latest revision as of 16:04, 25 May 2023


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

अधिक औपचारिक रूप से, क्रिप्ट यूनिक्स प्रणाली पर पासवर्ड सत्यापन और भंडारण के लिए गूढ़लेखिकी कुंजी व्युत्पत्ति प्रकार्य प्रदान करते है।

यूनिक्स क्रिप्ट उपयोगिता से संबंध

यूनिक्स में असंबंधित क्रिप्ट (यूनिक्स) उपयोगिता है, जिसे प्रायः सी लाइब्रेरी प्रकार्य के साथ भ्रमित किया जाता है। दोनों के बीच अंतर करने के लिए, लेखक प्रायः उपयोगिता प्रोग्राम को 'क्रिप्ट (1)' के रूप में संदर्भित करते हैं, क्योंकि यह यूनिक्स मैनुअल पृष्ठ (यूनिक्स) के खंड 1 में प्रलेखित है, और सी लाइब्रेरी प्रकार्य को 'क्रिप्ट' के रूप में संदर्भित करते है। (3), क्योंकि इसका प्रलेखन मैनुअल अनुभाग 3 में है।[1]


विवरण

यह एक ही क्रिप्ट प्रकार्य का उपयोग भंडारण के लिए नवीन हैश उत्पन्न करने के लिए और तुलना के लिए अभिलेखबद्ध किए गए साल्ट (गूढ़लेखिकी) के साथ एक प्रस्तावित पासवर्ड को हैश करने के लिए भी किया जाता है।

क्रिप्ट लाइब्रेरी परिच्छेदन के आधुनिक यूनिक्स कार्यान्वयन विभिन्न प्रकार की हैश पद्धतिओं का समर्थन करते हैं। मॉड्यूलर क्रिप्ट प्रारूप नामक वास्तविक मानक के बाद, परिणामस्वरूप हैशटेक्स्ट में उपयोग किए जाने वाले विशेष हैश एल्गोरिदम को अद्वितीय कोड प्रीफिक्स द्वारा पहचाना जा सकता है।[2][3][4]

crypt () लाइब्रेरी प्रकार्य पर्ल,[5] पीएचपी,[6] पाईक (प्रोग्रामिंग भाषा),[7] पायथन (प्रोग्रामिंग भाषा) [8] (यद्यपि अब इसे 3.11 के रूप में हटा दिया गया है), और रूबी (प्रोग्रामिंग भाषा) [9] प्रोग्रामिंग भाषाओं में भी सम्मिलित है।

क्रिप्ट द्वारा समर्थित कुंजी व्युत्पत्ति प्रकार्य

समय के साथ विभिन्न एल्गोरिदम प्रस्तुत किए गए हैं। पिछड़े संगतता को सक्षम करने के लिए, प्रत्येक पद्धति ने पासवर्ड हैश के क्रमांकन के कुछ सम्मेलन का उपयोग करना प्रारम्भ किया जिसे बाद में मॉड्यूलर क्रिप्ट प्रारूप (एमसीएफ) कहा गया।[3] वास्तविक एमसीएफ मानक से पहले जनित किया गया प्राचीन क्रिप्ट (3) हैश एक पद्धति से दूसरी पद्धति में भिन्न हो सकते है। पासवर्ड हैशिंग प्रतियोगिता के समय मॉड्यूलर क्रिप्ट प्रारूप का ठीक रूप से परिभाषित उपसमूह बनाया गया था।[3] प्रारूप को इस प्रकार परिभाषित किया गया है:[10]

$<id>[$<param>=<value> (,<param>=<value>) *][$<salt>[$<hash>]]

जहाँ

  • id: हैशिंग एल्गोरिदम का प्रतिनिधित्व करने वाला एक पहचानकर्ता (जैसे कि एमडी5 के लिए 1, एसएचए-2 आदि के लिए 5)
  • param नाम और उसकी value: हैश जटिलता पैरामीटर, जैसे आवर्तन/पुनरावृत्तियों की संख्या
  • salt: मूलांक-64 विकोडित साल्ट (गूढ़लेखिकी)
  • hash: पासवर्ड और साल्ट को हैश करने का मूलांक -64 विकोडित परिणाम

क्रिप्ट में रेडिक्स-64 विकोडन को बी64 कहा जाता है और वर्णमाला का उपयोग करता है ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz जो अधिक सामान्य बेस64 कार्यान्वयन और इतिहास से भिन्न है

पद्धति आईडी रूपरेखा उदाहरण
डीईएस Kyq4bCxAXJkbg
_ बीएसडीआई _EQ0.jzhSVeUyoSqLupI
1 एमडी5 $1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81
2, 2a, 2b, 2x, 2y बीक्रिप्ट $2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi
3 एनटीहैश $3$$8846f7eaee8fb117ad06bdd830b7586c
5 एसएचए-256 $5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD
6 एसएचए-512 $6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0
7 एसक्रिप्ट $7$DU..../....2Q9obwLhin8qvQl6sisAO/$एसएचएyJj/JBdcuD4lJ1AxiwCo9e5XSi8TcINcmyID12i8
8 (Cisco) एसएचए256 के साथपीबीकेडीएफ2 $8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.
8 (JunOS) पीबीकेडीएफ2 $8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted

$8$aes256-gcm$hmac-एसएचए2-256$100$y/4YMC4YDLU$fzYDI4jjN6YCyQsYLsaf8A$Ilu4jLcZarD9YnyD /Hejww$okhBlc0cGakSqYxKww

gy गोस्त-यसक्रिप्ट $gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26
md5 सोलारिस एमडी5 $एमडी5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0
sha1 एसएचए-1

के साथपीबीकेडीएफ1

$एसएचए1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq
y यसक्रिप्ट $y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7

पीएचसी उपसमूह में अधिकांश एमसीएफ हैश सम्मिलित हैं। कई अतिरिक्त एप्लिकेशन-परिभाषित विधियां स्थित हैं।[3]

एक कुंजी के रूप में पासवर्ड का उपयोग करके मूल कार्यान्वयन

तीसरे संस्करण यूनिक्स में[11] क्रिप्ट () लाइब्रेरी प्रकार्य का मूल कार्यान्वयन[12] ने एम-209 सिफर मशीन का अनुकरण किया। कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने के अतिरिक्त, जो पासवर्ड को गूढलेखित मान और कुंजी से पुनर्प्राप्त करने की अनुमति देता, उसने पासवर्ड को कुंजी के रूप में उपयोग किया, और पासवर्ड डेटाबेस में इस कुंजी के साथ पासवर्ड को एन्क्रिप्ट करने का परिणाम था।

पारंपरिक डीईएस-आधारित पद्धति

मूल पासवर्ड गूढ़लेखन पद्धति बहुत तीव्र पाई गई और इस प्रकार सबसे संभावित पासवर्डों के पशुपन बल गणना के अधीन थी।[12] सातवें संस्करण यूनिक्स में,[13] पद्धति को डेटा गूढ़लेखन मानक एल्गोरिदम के संशोधित रूप में बदल दिया गया था। इस परिवर्तन का लक्ष्य गूढ़लेखन को मंद करना था। इसके अतिरिक्त, एल्गोरिदम में एक 12-बिट साल्ट (गूढ़लेखिकी) सम्मिलित है ताकि यह सुनिश्चित किया जा सके कि आक्रामक को एक साथ पूरे पासवर्ड डेटाबेस को लक्षित करने में सक्षम होने के विपरीत प्रत्येक पासवर्ड को स्वतंत्र रूप से क्रैक करने के लिए विवश किया जाएगा।

विस्तार से, उपयोगकर्ता के पासवर्ड को आठ अक्षरों तक छोटा कर दिया जाता है, और उनमें से प्रत्येक को मात्र 7-बिट तक सीमित कर दिया जाता है; यह 56-बिट डीईएस कुंजी बनाता है। उस कुंजी का उपयोग तब सभी-बिट-शून्य कक्ष को एन्क्रिप्ट करने के लिए किया जाता है, और फिर सिफ़र को उसी कुंजी के साथ फिर से एन्क्रिप्ट किया जाता है, और इसी प्रकार कुल 25 डीईएस गूढ़लेखन के लिए। गूढ़लेखन एल्गोरिदम को उद्विग्न करने के लिए 12-बिट साल्ट का उपयोग किया जाता है, इसलिए क्रिप्ट () को लागू करने के लिए मानक डीईएस कार्यान्वयन का उपयोग नहीं किया जा सकता है। साल्ट और अंतिम सिफ़र को बेस 64 के रूप में मुद्रण करने योग्य स्ट्रिंग में विकोडित किया गया है।

यह तकनीकी रूप से गूढ़लेखन नहीं है क्योंकि डेटा (सभी बिट शून्य) को गुप्त नहीं रखा जा रहा है; यह व्यापक रूप से पहले से सभी के लिए जाना जाता है। यद्यपि, डीईएस की विशेषता यह है कि यह ज्ञात सादे पाठ स्थितियों में भी की पुनः प्राप्ति के लिए बहुत प्रतिरोधी है। यह सैद्धांतिक रूप से संभव है कि दो अलग-अलग पासवर्ड का परिणाम एक ही हैश में हो सकते है। इस प्रकार पासवर्ड को कभी भी डिक्रिप्ट नहीं किया जाता है: इसका उपयोग मात्र परिणाम की गणना करने के लिए किया जाता है, और मिलान के परिणामों को प्रमाण माना जाता है कि पासवर्ड समान थे।

इस पद्धति का लाभ यह रहा है कि हैशटेक्स्ट को प्रणाली संचालनों या अन्य उपयोगकर्ताओं को संबंधित सादे पाठ पासवर्ड को उद्भासित किए बिना यूनिक्स प्रणाली के बीच संग्रहीत और अनुकरण किया जा सकता है। इस सुवाह्यता ने 30 से अधिक वर्षों तक कंप्यूटिंग स्थापत्य की कई पीढ़ियों और कई विक्रेताओं से यूनिक्स के कई संस्करणों में कार्य किया है।

पारंपरिक पद्धति की दुर्बलता

पारंपरिक डीईएस-आधारित क्रिप्ट एल्गोरिदम मूल रूप से चुना गया था क्योंकि डीईएस ज्ञात सादे पाठ आक्षेप के सामने भी कुंजी पुनर्प्राप्ति के लिए प्रतिरोधी था, और क्योंकि यह संगणनात्मक रूप से कीमती था। प्रारंभिक यूनिक्स मशीनों पर पासवर्ड हैश की गणना करने में पूरे एक सेकंड का समय लगता था। इसने उस युग में शब्दकोष के आक्षेप के लिए यथोचित प्रतिरोधी बना दिया। उस समय पासवर्ड हैश सामान्यतः स्पष्टीकरण फ़ाइल (/etc/passwd) में संग्रहीत किया जाता था जो प्रणाली पर किसी के लिए भी पठनीय था। (इस स्पष्टीकरण फ़ाइल का उपयोग उपयोगकर्ता आईडी संख्याओं को नामों में, और उपयोगकर्ता नामों को पूर्ण नामों आदि में प्रतिचित्रित करने के लिए भी किया गया था)।

उस समय से तीन दशकों में, कंप्यूटर बहुत अधिक शक्तिशाली हो गए हैं। मूर के नियम को सामान्यतः सत्य माना गया है, इसलिए किसी दिए गए वित्तीय निवेश के लिए उपलब्ध कंप्यूटर की गति और क्षमता यूनिक्स के पहली बार लिखे जाने के बाद से 20 गुना से अधिक हो गई है। इसने लंबे समय से डीईएस-आधारित एल्गोरिदम को शब्दकोश आक्षेप के प्रति संवेदनशील बना दिया है, और यूनिक्स और यूनिक्स जैसी प्रणालियों जैसे कि लिनक्स ने लंबे समय तक "शैडो" फ़ाइलोंका उपयोग किया है, स्पष्टीकरण फ़ाइल (/etc/passwd) से मात्र पासवर्ड हैश मानों को गतिमान करना और एक फ़ाइल में (पारंपरिक रूप से नामित /etc/shodow) जिसे मात्र विशेषाधिकार प्राप्त प्रक्रियाओं द्वारा ही पढ़ा जा सकता है।

पासवर्ड तोड़ने की संगणनात्मक लागत को बढ़ाने के लिए, कुछ यूनिक्स साइटों ने व्यक्तिगत रूप से तदर्थ आधार पर गूढ़लेखन आवर्तन की संख्या में वृद्धि करना प्रारम्भ कर दिया।[citation needed] इसका उनके crypt () को मानक crypt () के साथ असंगत बनाने का दुष्प्रभाव था: हैश का एक ही शाब्दिक रूप था, परन्तु अब अलग एल्गोरिदम का उपयोग करके गणना की गई थी। मानक सभी-बिट-शून्य से प्रारंभिक कक्ष को संशोधित करके कुछ साइटों ने इस असंगति प्रभाव का भी लाभ उठाया।[citation needed] इससे हैशिंग की लागत में वृद्धि नहीं हुई, परन्तु इसका अर्थ यह था कि मानक crypt() के आधार पर पूर्व संगणित हैश शब्दकोशों को लागू नहीं किया जा सका।

बीएसडीआई ने डीईएस-आधारित पद्धति का विस्तार किया

बर्कले सॉफ्टवेयर डिजाइन ने उत्कृष्ट डीईएस-आधारित पद्धति में साधारण संशोधन किया। बीएसडीआई ने साल्ट को 24 बिट तक बढ़ाया और आवर्तन की संख्या को चर बना दिया (224-1)। आवर्तन की चुनी हुई संख्या संग्रहीत पासवर्ड हैश में विकोडित की गई है, जो साइट द्वारा मूल पद्धति द्वारा उपयोग किए जाने वाले आवर्तन की संख्या को संशोधित करने पर उत्पन्न होने वाली असंगति से बचाती है। इन हैश की पहचान अधोरेखांकन (_) से प्रारम्भ करके की जाती है, जिसके बाद 4 वर्ण आवर्तन की संख्या का प्रतिनिधित्व करते हैं, फिर साल्ट के लिए 4 वर्ण।

बीएसडीआई एल्गोरिदम भी लंबे पासवर्ड का समर्थन करता है, डीईएस का उपयोग करके प्रारंभिक लंबे पासवर्ड को मूल एल्गोरिदम द्वारा समर्थित आठ 7-बिट बाइट तक नीचे कर देता है।

एमडी5-आधारित पद्धति

पॉल-हेनिंग कैंप ने एमडी5 संदेश संकलन एल्गोरिदम पर आधारित बारोक और (उस समय) संगणनात्मक रूप से बहुमूल्य एल्गोरिदम डिज़ाइन किया। एमडी5 स्वयं पासवर्ड हैश के लिए ठीक गूढ़लेखिकी दृढ़ता प्रदान करेगा, परन्तु यह प्रदान की जाने वाली दृढ़ता के सापेक्ष गणना करने के लिए अत्यधिक तीव्र डिज़ाइन किया गया है। शब्दकोश आक्षेप को मंद करने के लिए, क्रिप्ट () पद्धति की गणना करने के लिए बहुमूल्य होने के लिए डिज़ाइन किया गया है। एमडी5 पासवर्ड हैश का मुद्रण करने योग्य रूप $1$ से प्रारम्भ होता है।

यह पद्धति उपयोगकर्ताओं को किसी भी लम्बाई के पासवर्ड की अनुमति देती है, और वे अपने प्लेटफ़ॉर्म द्वारा समर्थित किसी भी वर्ण का उपयोग कर सकते हैं (मात्र 7-बिट एएससीआईआई नहीं)। (व्यावहारिक रूप से कई कार्यान्वयन पासवर्ड की लंबाई को सीमित करते हैं, परन्तु वे सामान्यतः किसी भी व्यक्ति द्वारा टाइप करने के इच्छुक होने की तुलना में लंबे समय तक पासवर्ड का समर्थन करते हैं।) साल्ट भी एक यादृच्छिक स्ट्रिंग है, जो मात्र संप्रतीक समुच्चय विचारों द्वारा सीमित है।

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

निश्चित पुनरावृति गणना के कारण इस पद्धति ने संगणनात्मक व्यय को खो दिया है जो एक बार आनंद लिया था और अब चक्रों की परिवर्तनीय संख्या का समर्थन किया जाता है। जून 2012 में, पॉल-हेनिंग काम्प ने एल्गोरिदम को असुरक्षित घोषित किया और उपयोगकर्ताओं को दृढ़ पासवर्ड संकेत अस्फुटक में अभिगमन करने के लिए प्रोत्साहित किया।[14]


ब्लोफिश-आधारित पद्धति

नील्स प्रोवोस और डेविड माज़िएरेस ने ब्लोफिश (सिफर) पर आधारित क्रिप्ट () पद्धति को डिजाइन किया, जिसे बीक्रिप्ट कहा जाता है, और इसे 1999 में यूसेनिक्स में प्रस्तुत किया।[15] इन हैश का मुद्रण करने योग्य रूप $2$, $2a$, $2b$, $2x$ या $2y$ से प्रारम्भ होते है, यह इस बात पर निर्भर करता है कि एल्गोरिदम के किस संस्करण का उपयोग किया जाता है:

  • $2$ – अप्रचलित।
  • $2a$ – इस पद्धति की पहचान करने के लिए उपयोग की जाने वाली वर्तमान कुंजी। चूंकि 2011 में गैर-ओपनबीएसडी crypt_blowfish कार्यान्वयन में एक प्रमुख सुरक्षा दोष की खोज की गई थी,[16] इस स्ट्रिंग द्वारा संकेतित हैश अब अस्पष्ट हैं और त्रुटिपूर्ण कार्यान्वयन, या बाद के निश्चित, कार्यान्वयन द्वारा उत्पन्न हो सकते हैं। गैर-एएससीआईआई (8-बिट-समूह) वर्ण वाले कुछ पासवर्ड स्ट्रिंग द्वारा त्रुटि को ट्रिगर किया जा सकता है।
  • $2b$ – परिवेष्टन समस्या को कम करने के लिए वर्तमान के ओपनबीएसडी कार्यान्वयन द्वारा उपयोग किया जाता है।[17] एल्गोरिदम के पिछले संस्करणों में लंबे पासवर्ड की समस्या है। डिज़ाइन के अनुसार, लंबे पासवर्ड को 72 अक्षरों में काट दिया जाता है, परन्तु कुछ पासवर्ड लंबाई के साथ एक बाइट पूर्णांक परिवेष्टन समस्या होती है, जिसके परिणामस्वरूप मंद हैश होते है।[18]
  • $2x$ – crypt_blowfish की खोज के बाद फ्लैग जोड़ा गया। प्राचीन हैश का नाम बदलकर $2x$ किया जा सकता है यह इंगित करने के लिए कि वे टूटे हुए एल्गोरिदम के साथ उत्पन्न हुए थे। ये हैश अभी भी मंद हैं, परन्तु कम से कम यह स्पष्ट है कि उन्हें उत्पन्न करने के लिए किस एल्गोरिदम का उपयोग किया गया था।
  • $2y$ – स्पष्ट रूप से नवीन, संशोधित एल्गोरिदम का उपयोग करने के लिए crypt_blowfish में एक फ्लैग। बग से पीड़ित प्राचीन कार्यान्वयन पर, $2y$ मात्रकार्य नहीं करेगा। एक नवीन, निश्चित कार्यान्वयन पर, यह $2b$ का उपयोग करने के समान परिणाम देगा।

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

कुंजीयन के आवर्तन की संख्या दो का सामर्थ्य है, जो एल्गोरिदम का एक निवेश है। संख्या टेक्स्ट हैश में विकोडित की गई है, उदाहरण के लिए $2y$10...


एनटी हैश पद्धति

एमएस-चाप के माध्यम से एनटी स्पष्टीकरण के साथ सरल संगतता प्रदान करने के लिए फ्रीबीएसडी ने एनटीएलएम हैश एल्गोरिदम के लिए समर्थन लागू किया।[19] एनटी-हैश एल्गोरिदम मंद होने के लिए जाना जाता है, क्योंकि यह बिना किसी साल्ट के बहिष्कृत एमडी 4 हैश एल्गोरिदम का उपयोग करते है।[20] फ्रीबीएसडी ने इसके लिए $3$का उपयोग किया। इसके उपयोग की अनुशंसा नहीं की जाती है, क्योंकि यह सरलता से टूट जाता है।[1]


एसएचए2-आधारित पद्धति

सामान्यतः उपयोग की जाने वाली एमडी5 आधारित पद्धति पर आक्षेप करना सरल हो गया है क्योंकि कंप्यूटर का सामर्थ्य बढ़ गया है। यद्यपि ब्लोफिश-आधारित प्रणाली में आवर्तन जोड़ने का विकल्प होता है और इस प्रकार यह चुनौतीपूर्ण पासवर्ड एल्गोरिदम बना रहता है, यह राष्ट्रीय मानक और प्रौद्योगिकी-अनुमोदित एल्गोरिदम का उपयोग नहीं करता है। इन तथ्यों के आलोक में, रेड हैट के उलरिच ड्रेपर ने एसएचए-2 (एसएचए-256 और एसएचए-512) हैश प्रकार्यों पर आधारित पद्धति बनाने का प्रयास किया।[21] इन हैश का मुद्रण करने योग्य रूप $5$ (एसएचए-256 के लिए) या $6$ (एसएचए-512 के लिए) से प्रारम्भ होते है जिसके आधार पर एसएचए संस्करण का उपयोग किया जाता है। इसका डिज़ाइन एमडी5-आधारित क्रिप्ट के समान है, कुछ उल्लेखनीय अंतरों के साथ:[21]

  • यह कुछ ही चरणों में निरंतर डेटा जोड़ने से बचता है।
  • एमडी5 एल्गोरिद्म बार-बार पासवर्ड का पहला अक्षर जोड़ देगा;[citation needed] इस चरण को अत्यधिक बदल दिया गया था।
  • सन के क्रिप्ट () कार्यान्वयन से प्रेरित होकर, एल्गोरिदम निष्पादन में मुख्य पाशन पुनरावृत्तियों (आवर्तन) की संख्या निर्दिष्ट करने के लिए कार्यक्षमता जोड़ी गई थी[22][23]
  • पुनरावृत्तियों की संख्या स्वतः निर्धारित रूप से 5000 है, न्यूनतम 1000 और अधिकतम 999,999,999।[24]

विनिर्देश और प्रतिदर्श कोड सार्वजनिक डोमेन में जारी किए गए हैं; इसे प्रायः एसएचएक्रिप्ट के रूप में संदर्भित किया जाता है।[24]


अन्य हैश

$y$
यसक्रिप्ट, क्रिप्ट ($7$) का एक विस्तार है और पीएचसी निणार्यक है। इसका उपयोग वर्तमान पद्धतिओं के विकल्प के रूप में कई लिनक्स वितरणों में किया जाता है।[25] इस हैश का उपयोग करने के लिए, जीलिबसी से libcrypt को लिबक्सक्रिप्ट प्रोजेक्ट से पिछड़े-संगत के साथ बदल दिया गया है।[26]
$argon2d$, $argon2i$, $argon2ds$
ये आर्गन2 एल्गोरिदम के लिए पीएचसी द्वारा निर्दिष्ट नाम हैं, परन्तु व्यापक रूप से उपयोग किए जाने वाले प्रतीत नहीं होते हैं।

अतिरिक्त प्रारूप, यदि कोई हो, कार्यान्वयन के मैन पृष्ठ में वर्णित हैं।[27]


पुरातन यूनिक्स पद्धति

बिगक्रिप्ट, एचपी-यूएक्स, डिजिटल यूनिक्स, और ओएसएफ/1 पर प्रयुक्त डीईएस-क्रिप्ट का संशोधित संस्करण है। इसके और डीईएस के बीच मुख्य अंतर यह है कि बिगक्रिप्ट पासवर्ड के सभी वर्णों का उपयोग करते है, न कि मात्र पहले 8 का, और इसकी चर लंबाई हैश है।[28]

क्रिप्ट16 डीईएस का साधारण संशोधन है, जो 16 अक्षरों तक के पासवर्ड की अनुमति देता है। अल्ट्रिक्स और ट्रू64 पर उपयोग किया गया।[29]


प्रचालन तंत्र में सहायता

पद्धति आईडी पद्धति लिनक्स (जीलिबसी) फ्रीबीएसडी नेटबीएसडी ओपनबीएसडी सोलारिस मैकओएस
डीईएस Yes[30] Yes Yes Yes Yes Yes
_ बीएसडीआई Yes[30] Yes Yes Yes No Yes
1 एमडी5 Yes[30] Yes Yes Yes Yes No
2, 2a, 2b, 2x, 2y बीक्रिप्ट Yes[30] Yes Yes Yes Yes No
3 एनटीहैश Yes[30] Yes No No No No
5 एसएचए-256 2.7+[30] 8.3+ No No Yes No
6 एसएचए-512 2.7+[30] 8.3+ No No Yes No
7 एसक्रिप्ट Yes[30] Yes No No Yes No
एमडी5 सोलारिस एमडी5 Yes[30] No No No Yes No
एसएचए1 पीबीकेडीएफ1 के साथ एसएचए1 Yes[30] No Yes No No No
जीवाई गोस्त-यसक्रिप्ट Yes[30] No No No No No
y यसक्रिप्ट Yes[30] No No No No No


लिनक्स

लगभग सभी लिनक्स वितरणों द्वारा उपयोग की जाने वाली जीएनयू सी लाइब्रेरी क्रिप्ट प्रकार्य का कार्यान्वयन प्रदान करती है जो डीईएस, एमडी5 और (संस्करण 2.7 के बाद से) एसएचए-2 आधारित हैशिंग एल्गोरिदम का समर्थन करती है। जीलिबसी अनुरक्षक, उलरिच ड्रेपर ने बीक्रिप्ट (पद्धति 2) समर्थन को अस्वीकार कर दिया क्योंकि यह राष्ट्रीय मानक और प्रौद्योगिकी संस्थान द्वारा अनुमोदित नहीं है।[31] बिना बीक्रिप्ट वाले प्रणाली के लिए सार्वजनिक डोमेन क्रिप्ट_ब्लोफिश लाइब्रेरी उपलब्ध है। इसे एसयूएसई लिनक्स में ग्लिबैक में एकीकृत किया गया है।[32] इसके अतिरिक्त, उपर्युक्त लिबएक्सक्रिप्ट का उपयोग यसक्रिप्ट-सक्षम प्रणाली पर जीलिबसी crypt () को बदलने के लिए किया जाता है।

मुस्ल सी लाइब्रेरी पद्धति 1, 2, 5 और 6 के साथ-साथ परंपरा डीईएस पद्धति का समर्थन करती है। पारंपरिक डीईएस कोड बीएसडी फ्रीसेक पर आधारित है, जिसमें ग्लिबक यूएफसी-क्रिप्ट के साथ संगत होने के लिए संशोधन किया गया है।[33]


मैकओएस

डार्विन के जन्मज crypt () सीमित कार्यक्षमता प्रदान करते है, मात्र डीईएस और बीएसडीआई का समर्थन करता है। ओएस एक्स अपने स्वयं के पासवर्ड हैश के लिए कुछ प्रणाली का उपयोग करते है, जो प्राचीन नेक्सट्स्टेप नेटइन्फो से लेकर नवीन निर्देशिका सेवाएं (डीएस) प्रणाली तक है।[34][35]


यह भी देखें

संदर्भ

  1. 1.0 1.1 crypt(3) – FreeBSD Library Functions Manual
  2. Simson Garfinkel, Alan Schwartz, Gene Spafford. "Practical Unix & Internet Security". 2003. section "4.3.2.3 crypt16( ), DES Extended, and Modular Crypt Format". "The Modular Crypt Format (MCF) specifies an extensible scheme for formatting encrypted passwords. MCF is one of the most popular formats for encrypted passwords"
  3. 3.0 3.1 3.2 3.3 "Modular Crypt Format — Passlib v1.7.1 Documentation". Pythonhosted.org. Retrieved 2 December 2018.
  4. "ademarre/binary-mcf". GitHub.com. Retrieved 2 December 2018.
  5. "क्रिप्ट - perldoc.perl.org". Perldoc.perl.org. Retrieved 2 December 2018.
  6. "PHP: crypt - Manual". Us.php.net. Retrieved 2 December 2018.
  7. "तहखाना ()". Archived from the original on 2012-10-02. Retrieved 2013-02-09.
  8. "crypt — Function to check Unix passwords — Python 3.7.1 documentation". Docs.python.org. Retrieved 2 December 2018.
  9. "Class: String (Ruby 2.5.3)". Ruby-doc.org. Retrieved 2 December 2018.
  10. Password Hash Competition. "पीएचसी स्ट्रिंग प्रारूप". Github.
  11. "crypt – password encoding". UNIX Third Edition Programmers' Manual. 1973-01-15.
  12. 12.0 12.1 Morris, Robert; Thompson, Ken (1978-04-03). "Password Security: A Case History". Bell Laboratories. Retrieved 2013-12-17.
  13. "crypt, setkey, encrypt – DES encryption". UNIX Seventh Edition Programmers' Manual. 1979.
  14. "Md5crypt Password scrambler is no longer considered safe by author — PHKs Bikeshed". Phk.freebsd.dk. Archived from the original on 17 March 2018. Retrieved 2 December 2018.
  15. Provos, Niels; Mazières, David (1999). "एक भविष्य-अनुकूलनीय पासवर्ड योजना". Proceedings of 1999 USENIX Annual Technical Conference: 81–92.
  16. Designer, Solar (2011-06-21). "crypt_blowfish 1.1; Owl glibc security update". See also CVE-2011-2483.
  17. "src/lib/libc/crypt/bcrypt.c – view – 1.27". Cvsweb.openbsd.org. Retrieved 2016-05-14.
  18. Designer, Solar (2012-01-02). "OpenBSD bcrypt 8-bit key_len wraparound".
  19. "NT MD4 password hash as new password encryption method for FreeBSD". Mail-archive.com. Retrieved 2 December 2018.
  20. "एनटीएलएम प्रमाणीकरण प्रोटोकॉल और सुरक्षा सहायता प्रदाता". Davenport.sourceforge.net. Retrieved 2 December 2018.
  21. 21.0 21.1 Drepper, Ulrich (19 September 2007). "Unix crypt with SHA-256/512". Retrieved 21 November 2018.
  22. Sun Microsystems. "crypt_sunmd5(5) man page". Archived from the original on 2008-04-16. Retrieved 2008-03-05.
  23. Muffett, Alec (2005-12-05). "OpenSolaris, Pluggable Crypt, and the SunMD5 Password Hash Algorithm". Retrieved 2012-08-11.
  24. 24.0 24.1 Drepper, Ulrich. "Unix crypt using SHA-256 and SHA-512".
  25. "FESCo Says "Yes" To Fedora 35 Using Yescrypt For Hashing Shadow Passwords - Phoronix". www.phoronix.com.
  26. "Changes/yescrypt as default hashing method for shadow - Fedora Project Wiki". libxcrypt: Is already capable for computing yescrypt hashes since v4.3.
  27. "passlib.hash.bigcrypt - BigCrypt — Passlib v1.7.1 Documentation". Pythonhosted.org. Retrieved 2 December 2018.
  28. "passlib.hash.crypt16 - Crypt16 — Passlib v1.7.1 Documentation". Pythonhosted.org. Retrieved 2 December 2018.
  29. 30.00 30.01 30.02 30.03 30.04 30.05 30.06 30.07 30.08 30.09 30.10 30.11 "Debian manpage crypt". manpages.debian.org. Retrieved 11 Jan 2022.
  30. "bcrypt support for passwords in /etc/shadow - Red Hat Customer Portal". Access.redhat.com. Retrieved 2 December 2018.
  31. "आपके सॉफ़्टवेयर और आपके सर्वर के लिए bcrypt पासवर्ड हैशिंग ("पासवर्ड एन्क्रिप्शन")". www.openwall.com.
  32. "crypt_r.c\crypt\src - musl - musl - an implementation of the standard library for Linux-based systems". git.musl-libc.org.
  33. "कैसे मैक ओएस एक्स पासवर्ड प्रमाणीकरण लागू करता है". Dribin.org. Retrieved 2 December 2018.
  34. "मैक ओएस एक्स पासवर्ड कैसे क्रैक करें - ऑनलाइन हैश क्रैक". Onlinehashcrack.com. Retrieved 2 December 2018.


बाहरी संबंध