2010-04-02 34 views
7

मैं PHP के लिए sha512 फ़ंक्शन का उपयोग कैसे करूं?PHP पासवर्ड सुरक्षा: md5 से sha512

क्या मैं sha512 फ़ंक्शन के साथ अपने सभी md5 फ़ंक्शंस को प्रतिस्थापित कर सकता हूं?

क्या मुझे कुछ डाउनलोड करना है तो क्या?

कोई भी उदाहरण प्रदान कर सकता है?

उत्तर

6

hash() समारोह, पीएचपी> = 5.1 के साथ प्रदान की, SHA512 हैश उत्पन्न करने में सक्षम होना चाहिए - आप इस hash_algos() समारोह, जो समर्थित हैशिंग एल्गोरिदम को सूचीबद्ध बुला सत्यापित कर सकते हैं।


उदाहरण के लिए, आप इस्तेमाल कर सकते हैं:

$sha512 = hash('sha512', "Hello, World!"); 
var_dump($sha512); 

और तुम मिल चाहते हैं:

string '374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387' (length=128) 


और, अपने सिस्टम, कोड की निम्न हिस्से पर:

$supported = hash_algos(); 
var_dump($supported); 

टी इंगित करता है टोपी 42 हैशिंग एल्गोरिदम समर्थित हैं:

array 
    0 => string 'md2' (length=3) 
    ... 
    6 => string 'sha384' (length=6) 
    7 => string 'sha512' (length=6) 
    8 => string 'ripemd128' (length=9) 
    9 => string 'ripemd160' (length=9) 
    ... 
    40 => string 'haval224,5' (length=10) 
    41 => string 'haval256,5' (length=10) 



इसके अलावा, पीएचपी साथ> = 5.3, आप openssl_digest() समारोह का उपयोग करने के लिए सक्षम होना चाहिए:

$sha512 = openssl_digest("Hello, World!", 'sha512'); 
var_dump($sha512); 

(हाँ, पैरामीटर एक ही क्रम में नहीं हैं hash() - पीएचपी, यहाँ का जादू ...)

और,, आप openssl_get_md_methods() इस्तेमाल कर सकते हैं समर्थित एल्गोरिदम की सूची प्राप्त करने।

मेरे सिस्टम पर, यह मुझे 22 समर्थित एल्गोरिदम देता है।

+0

यदि आपके सॉफ़्टवेयर को एकाधिक मशीनों पर चलाने की आवश्यकता है, तो सुनिश्चित करें कि यह आपकी सभी मशीनों पर उपलब्ध होगा। – TheJacobTaylor

+0

क्या आप एक साधारण पासवर्ड लॉगिन उदाहरण प्रदान कर सकते हैं, अगर यह ज्यादा नहीं पूछ रहा है :) – PeAk

+1

यह थोड़ा और जटिल है कि यह ^^ लेकिन मूल विचार यह है: उपयोगकर्ता द्वारा पोस्ट किया गया पासवर्ड प्राप्त करें ;; हैश यह ;; हैश-पासवर्ड से हैश की तुलना करें जो उपयोगकर्ता द्वारा प्रदान किए गए लॉगिन के लिए डेटाबेस में संग्रहीत है ;; यदि वे मेल खाते हैं, तो यह ठीक है, और उपयोगकर्ता लॉग-इन इंगित करने के लिए आप '$ _SESSION' में कुछ सेट कर सकते हैं। –

1

जिज्ञासा से बाहर, आप MD5 फ़ंक्शन को क्यों बदलना चाहते हैं?

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

मैं सिर्फ नमक जोड़ूंगा और इसे अच्छा कहूंगा।

याकूब

+0

मैं नमक कैसे अधिक महत्वपूर्ण तरीके से एक यादृच्छिक नमक कैसे उत्पन्न करूंगा? – PeAk

+0

+1 और एमडी 5 से SHA512 तक ... वहां काफी छलांग है। –

+0

क्षमा करें तो बेहतर सुरक्षित। – PeAk

0

Checksums पैदा चेकसम के लिए कर रहे हैं, HMAC शायद हासिल करने हैशिंग की आवश्यकता होती है तार के नमकीन हैश पैदा करने के लिए पसंदीदा तरीका है।

hash_hmac('sha512', 'important string', 'salt'); 
संबंधित मुद्दे