python पासवर्ड को सफ़ाई मेंश के रूप में सहेजते हैं जो पैगथन- बीक्रिप्ट का उपयोग करते हुए उपयोगकर्ता संग्रह में है




mongodb hash (2)

मैं एक नमकीन हैश पासवर्ड जेनरेट करना चाहता हूं और इसे माँगोडब संग्रह में संग्रहीत करना चाहता हूं, जैसे कि:

users_doc = { 
    "username": "james",
    "password": salted_hash_password
}

मैंने Python स्क्रिप्ट में यूज़र्स नामक क्लास बनाया है, जहां मैं माँगोडब में हैहेड पासवर्ड जेनरेट और स्टोर करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि यह हैशड पासवर्ड bcrypt का उपयोग कैसे करें और फिर जब मैं अपने फ्लास्क वेब-ऐप में प्रवेश करता हूं तो यह जांचने के लिए कि क्या हैश आपके द्वारा मंगॉड्ब में संग्रहीत हैशेड पासवर्ड से मेल खाता है


Bcrypt का उपयोग करते हुए नमक उत्पन्न करें और इसे अपनी सेटिंग्स फ़ाइल में सहेजते रहें:

import bcrypt
salt = bcrypt.gensalt()

पासवर्ड एन्क्रिप्ट करने के लिए:

password = "userpassword"
hashed = bcrypt.hashpw(password, bcrypt.gensalt())

उत्पन्न नमक की जांच करना:

>>> print hashed
$2a$12$C.zbaAxJPVVPKuS.ZvNQiOTVSdOf18kMP4qDKDnM3AGrNyGO5/tTy

यह जांचने के लिए कि आपने दिए गए पासवर्ड से मेल खाता है या नहीं (बस नमक का उपयोग करके पासवर्ड का एक हैश बनाएं और इसकी तुलना डेटाबेस पर करें):

given_password = "password"
hashed_password = bcrypt.hashpw(password, salt) #Using the same salt used to hash passwords on your settings

hashed_password == hashed #In this case it returns false, because passwords are not the same

मुझे नहीं पता कि आप डेटा लाने के लिए कैसे मोंगॉड का इस्तेमाल करते हैं, लेकिन अगर आप पास पास करना चाहते हैं तो यह उतना आसान है:

from flask import Flask
from flask.ext.bcrypt import Bcrypt

app = Flask(__name__)
bcrypt = Bcrypt(app)

# Your code here...

users_doc = {
    "username": "james",
    "password": bcrypt.generate_password_hash(password)
}

और फिर अगर आप पासवर्ड की जांच करना चाहते हैं, तो आप check_password_hash() फ़ंक्शन का उपयोग कर सकते हैं:

bcrypt.check_password_hash(users_doc["password"], request.form["password"]) # Just an example of how you could use it.




bcrypt