97
एक पायथन एमडी 5 हैश शेल पर md5sum कमांड द्वारा बनाए गए एक से अलग है। क्यूं कर?पायथन द्वारा बनाए गए एमडी 5 हैश को शैल में इको और एमडी 5 एसयूएम का उपयोग करके बनाया गया है?
>>> import hashlib
>>> h = hashlib.md5()
>>> h.update("mystringforhash")
>>> print h.hexdigest()
86b6423cb6d211734fc7d81bbc5e11d3 # Result from Python
$ echo mystringforhash | md5sum
686687dd68c5de717b34569dbfb8d3c3 - # Result on the shell
असल में इस बड़े उदाहरण का उपयोग मैं जब मैं लोगों को बता अधिक अजगर या higer स्तर का उपयोग करने में से एक है काम के लिए खोल स्क्रिप्ट के बजाय भाषाएं जिन्हें आमतौर पर शैल स्क्रिप्ट में बेहतर तरीके से सोचा जाता है। मिश्रित डेटा और कोड की प्रकृति, और प्रत्येक कमांड के लिए एक अलग वाक्यविन्यास सभी शैल स्क्रिप्ट को अदृश्य त्रुटि प्रवण – jsbueno
बनाते हैं यदि केवल एक चीज "एक खोल" है तो आप 'echo' पर काम करने योग्य' -n' ध्वज पर भरोसा नहीं कर सकते हैं। POSIX का कहना है 'echo' के बारे में निम्नलिखित: "यदि पहला ऑपरेंड' -n' है, या यदि किसी भी ऑपरेटरों में '' वर्ण होता है, तो परिणाम कार्यान्वयन-परिभाषित होते हैं।" (स्रोत: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html)। इसके बजाय 'printf' का प्रयोग करें। –