php - MySQL हैशिंग फंक्शन कार्यान्वयन




hash passwords (4)

आप mysql पासवर्ड () फ़ंक्शन का उपयोग क्यों करना चाहते हैं? यहां तक ​​कि MySQL दस्तावेज़ीकरण इसके विरुद्ध सलाह देता है:

http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html#function_password

पासवर्ड () फ़ंक्शन MySQL सर्वर में प्रमाणीकरण सिस्टम द्वारा उपयोग किया जाता है; आपको अपने स्वयं के अनुप्रयोगों में इसका उपयोग नहीं करना चाहिए

आप उदाहरण के लिए एमडी 5 () का उपयोग कर सकते हैं, जो लगभग सभी प्रोग्रामिंग भाषा, पीएचपी और पर्ल में मौजूद है।

मुझे पता है कि php md5 (), sha1 (), और हैश () फ़ंक्शंस, लेकिन मैं MySQL PASSWORD () फ़ंक्शन का उपयोग कर एक हैश बनाना चाहता हूं। अब तक, एकमात्र तरीका मैं सोच सकता हूँ कि बस सर्वर से पूछताछ करना है, लेकिन मैं एक फ़ंक्शन (प्राथमिक रूप से पीएचपी या पर्ल में) चाहता हूं जो कि एक ही चीज़ को MySQL को क्वेरी किए बिना ही करेगी।

उदाहरण के लिए:

MySQL हैश -> 464bb2cb3cf18b66

MySQL5 हैश -> * 01D01F5CA7CA8BA771E03F4AC55EC73C11EFA229

धन्यवाद!


यदि आप इस फ़ंक्शन के एल्गोरिदम में रुचि रखते हैं, तो स्रोत कोड डाउनलोड करें और फ़ाइल को देखें / sql / password.c, या यह कार्यान्वयन जांचें।


ऊपर PHP क्रियान्वयन के आधार पर, यहां एक पर्ल उदाहरण दिया गया है जो काम करता है।

use Digest::SHA1 qw(sha1 sha1_hex);
sub password { "*".uc(sha1_hex(sha1($_[0]))) }

पासवर्ड फ़ंक्शन, MySQL5 PASSWORD () फ़ंक्शन के समान देता है।

"किसी को ऐसा क्यों करना चाहते हैं?" के जवाब में, मैं इसे एसक्यूएल "CREATE USER" स्टेटमेंट बनाने के लिए उपयोग करता हूं जिसमें सादा-पाठ पासवर्ड नहीं होते हैं


बुरे लड़कों ने शाएससम के साथ ऐसा किया;)

PHRASE="password"; P1=`echo -n "${PHRASE}"|sha1sum`; P2="*`echo -en $(echo -n ${P1%% *}|sed -E 's/([0-9a-f]{2})/\\\x\1/g')|sha1sum -b`"; PASS="${P2%% *}"; echo "${PASS^^}"

ओटी, लेकिन वैसे भी ... :)





passwords