पोस्टग्रेज़ का पासवर्ड हैश आपके द्वारा किए गए कार्यों के बहुत करीब है, इसे केवल उपयोगकर्ता नाम को निम्नानुसार शामिल करने की आवश्यकता है:
pghash = "md5" + hashlib.md5(password + username).hexdigest()
AFAIK, पोस्टग्रेस डॉक्स वास्तव में इस हैश प्रारूप को बिल्कुल भी दस्तावेज नहीं करते हैं, और ऐसा लगता है कि व्यवस्थापक शायद ही कभी इन हैश से सीधे निपटेंगे :( इन हैश को उत्पन्न करने के लिए कोई अंतर्निहित विधियां नहीं हैं जिन्हें मैं जानता हूं। यदि पासवर्ड प्रदान किया गया है ALTER USER
कमांड पोस्टग्रेज हैश प्रारूप के अनुरूप नहीं है, यह मानता है कि पासवर्ड हैश नहीं किया गया है, और आंतरिक रूप से इसका ध्यान रखता है - क्रिएट रोल के एनक्रिप्टेड कीवर्ड के लिए डॉक्स के अनुसार। (आईएमएचओ यह एक त्रुटिपूर्ण व्यवहार है, क्योंकि यदि कोई हैश उपयोगकर्ता नाम पर निर्भर करता है, तो इसका मतलब है कि हैश को अलग-अलग खातों के बीच कॉपी और पेस्ट नहीं किया जा सकता है, खाते का नाम बदलने पर तोड़ दिया जाता है, और (एन्ट्रॉपी वार अनुमान लगाया जाता है) केवल ~ 6 बिट्स होता है प्रभावी नमक)।
हैश के लिए पासलिब के दस्तावेज़ीकरण के शीर्ष पर चेतावनी शायद स्पष्ट हो सकती है। यह पासलिब दस्तावेज़ों के माध्यम से ब्राउज़ करने वाले लोगों को चेतावनी देने के लिए था कि 1) यह हैश बेहद असुरक्षित था, 2) कि उन्हें इसे अपने अनुप्रयोगों में उपयोग के लिए नहीं अपनाना चाहिए, और 3) कि यह केवल काम करने के उद्देश्य के लिए उपयुक्त था के साथ उपयोगकर्ता खातों को पोस्टग्रेज करता है, क्योंकि यह सबसे मजबूत (और केवल) हैश प्रारूप है जो अपने स्वयं के खातों के लिए पोस्टग्रेज का समर्थन करता है।
(यदि आप अपने स्वयं के एप्लिकेशन के उपयोगकर्ता खातों के लिए हैश पासवर्ड के लिए पोस्टग्रेज का उपयोग करने का प्रयास कर रहे हैं, तो मैं pgcrypto एक्सटेंशन के माध्यम से bcrypt का उपयोग करने के लिए क्लोडोआल्डो की सिफारिश का दृढ़ता से समर्थन करूंगा)।