2009-08-25 19 views
7

वहाँ एक रास्ता मैं अजगर 2.4 में एक SHA256 हैश की गणना कर सकते है? (मैं जोर देता हूं: पायथन 2.4) मुझे पता है कि इसे पायथन 2.5 में कैसे किया जाए लेकिन दुर्भाग्यवश यह मेरे सर्वर पर उपलब्ध नहीं है और अपग्रेड नहीं किया जाएगा। मुझे this प्रश्न में लड़के के समान समस्या है, लेकिन पायथन 2.4 का उपयोग करना। किसी भी प्रकार की सहायता सराहनीय होगी।SHA256 हैश 2.4

संपादित करें: क्षमा करें, मैं SHA 256. मतलब मैं जल्दी में भी किया गया था। दोबारा माफी चाहूंगा।

उत्तर

10

हाँ आप कर सकते हैं। पायथन 2.4 के साथ, SHA-1 मॉड्यूल था जो वास्तव में यह करता है। the documentation देखें।

हालांकि, ध्यान भालू है कि कोड इस मॉड्यूल से आयात जब नए अजगर के साथ चलाने के DeprecationWarnings का कारण होगा।

ठीक है, के रूप में आवश्यकता SHA-256 होने के लिए कड़ी कर दी गई किया गया था, मानक पुस्तकालय में SHA-1 मॉड्यूल का उपयोग कर पर्याप्त नहीं है। मैं pycrypto की जांच करने का सुझाव दूंगा, इसमें एक एसएचए -256 कार्यान्वयन है। पुरानी पायथन से मेल खाने के लिए विंडोज बाइनरी रिलीज भी हैं, एंड्रयू कुचलिंग old PyCrypto page के लिंक का पालन करें।

+0

पर डाल दिया आप पासवर्ड hashing कर रहे हैं, मैं SHA-1 उपयोग करने की अनुशंसा नहीं होगा, कभी। इसे क्रैक किया गया है और इसे असुरक्षित नहीं माना जाता है। हैश पासवर्ड के लिए एमडी 5 का उपयोग भी असुरक्षित माना जाता है। यदि आप पाइथन के हाल के संस्करणों में नए हैशिंग पुस्तकालयों तक नहीं पहुंच पा रहे हैं, तो मैं 'ssh-keygen' (लिनक्स पर) को सिस्टम कॉल करने और इसे बनाने वाली फ़ाइल में पढ़ने की अनुशंसा करता हूं। – MikeyE

+0

यह "कभी" कहने के लिए थोड़ा अतिरंजित है, 200 9 में जब प्रश्न और उत्तर लिखा गया था SHA1 ठीक था। संदर्भ के लिए, SHA1 हैश बनाने के लिए सबसे पहले सैद्धांतिक दृष्टिकोण मार्क स्टीवंस द्वारा टकराने प्रकाशित नहीं किया गया था 2013 तक लेकिन हाँ: अपने हैश को जानते हैं और अपनी पसंद की सुरक्षा के प्रभाव को समझते हैं। –

+0

मैं आपको सुनता हूं। जब मैंने "कभी" कहा, तो मेरा मतलब था "इस समय से कभी भी समय में आगे"। लेकिन, मैंने सोचा कि निहित था। आप एक अच्छा मुद्दा बनाते हैं। मुझे लगता है कि जब आपका लिखा गया था तो आपका जवाब अच्छा था। शायद इसे समय के साथ संशोधित किया जा सकता है? – MikeyE

8

आप संगत रहना चाहते हैं, sha मॉड्यूल का उपयोग कर सकते हैं, तो आप इसे इस तरह से आयात कर सकते हैं:

try: 
    from hashlib import sha1 
except ImportError: 
    from sha import sha as sha1 
+0

पोस्ट किया गया कोड SHA-1 की गणना करता है, और SHA-256 की गणना करना बेकार है। – pts

संबंधित मुद्दे