मैंने उपयोगकर्ताओं और उनके डेटा को एक django प्रोजेक्ट में आयात किया है। मुझे प्रत्येक को एक पासवर्ड आवंटित करने की आवश्यकता है। क्या पासवर्ड पीढ़ी के लिए ऐसा स्निपेट है जो Django हैश और नमक का सामना करेगा?Django पासवर्ड जेनरेटर
उत्तर
तुम भी समारोह make_random_password
for user in new_users:
password = User.objects.make_random_password()
user.set_password(password)
# email/print password
यह भी ध्यान दें कि 'make_random_password()' कीवर्ड तर्क 'लंबाई' और 'allow_chars' स्वीकार करता है। – benjaoming
import random
import string
user.set_password(''.join([random.choice(string.digits + string.letters) for i in range(0, 10)]))
user.save()
बस एपीआई का उपयोग - django.contrib.auth.models.User
एक .set_password()
विधि है। यहाँ एक उदाहरण है (है कि मैं परीक्षण नहीं किया है, लेकिन आप विचार प्राप्त होना चाहिए):
from random import choice
from string import digits, letters
from django.contrib.auth.models import User
def _pw(length=6):
s = ''
for i in range(length):
s += random.choice(digits + letters)
return s
for user in User.objects.all(): # or .filter(...)
user.set_password(_pw())
user.save()
इसके अलावा में बनाया का उपयोग कर सकते हैं auth
से बाहर from django.utils.crypto import get_random_string
उपयोग कर सकते हैं मॉड्यूल, यह कीवर्ड तर्क length
और allowed_chars
भी स्वीकार करता है।
+1। User.objects.make_random_password() पर पसंदीदा क्योंकि यह Django सेटिंग्स को कॉन्फ़िगर किए बिना स्टैंडअलोन स्क्रिप्ट से चलाया जा सकता है। मैं इसे यादृच्छिक स्थिरता पीढ़ी के लिए उपयोग करता हूं। – m000
आप केवल एक Django`s समाधान की जरूरत है, तो अगले कोशिश:
के लिए एक सामान्य पासवर्ड कोशिश उपयोग BaseUserManager उत्पन्न करते हैं।
In [341]: from django.contrib.auth.base_user import BaseUserManager
# simple password, it length is 10, and it contains ascii letters and digits
In [344]: BaseUserManager().make_random_password()
Out[344]: 'aYMX5Wk7Cu'
In [345]: BaseUserManager().make_random_password()
Out[345]: 'rM7759hw96'
In [346]: BaseUserManager().make_random_password()
Out[346]: 'EkbZxEXyAm'
# passed length of a password
In [347]: BaseUserManager().make_random_password(45)
Out[347]: 'dtM9vhSBL9WSFeEdPqj8jVPMH9ytsjPXrkaHUNUQu4zVH'
In [348]: BaseUserManager().make_random_password(45)
Out[348]: 'jypVaXuw9Uw8mD4CXtEhtj2E4DVYx23YTMwy8jGTKsreR'
# passed length of a password and symbols for choice
In [349]: BaseUserManager().make_random_password(45, 'abcdf')
Out[349]: 'daacbfabfccfdbdddbbcddcfcfbfcdabbaccbfcadbccd'
In [351]: import string
# password contains only digits
In [352]: BaseUserManager().make_random_password(50, string.digits)
Out[352]: '00526693878168774026398080457185060971935025500935'
# password contains only ascii symbols in lowercase
In [353]: BaseUserManager().make_random_password(50, string.ascii_lowercase)
Out[353]: 'nvftisuezofnashdhlalfmscnmqtvigwjpfwsyycsefekytmar'
# password contains only ascii symbols in uppercase
In [354]: BaseUserManager().make_random_password(50, string.ascii_uppercase)
Out[354]: 'APKSUHHHTAAJCFEUONIXWWAKJGXIBHTQDZBTSYFTPDFOSRYEQR'
आप मजबूत और बिजली पासवर्ड की जरूरत है, तो Django
In [355]: from django.contrib.auth.hashers import make_password
In [357]: make_password('')
Out[357]: 'pbkdf2_sha256$30000$JuKXdW3shCjL$PsPJX7Zale5JUBkWpIJI/+QlsuVWhz9Q+GQWVtTpQ/Y='
In [358]: make_password('text')
Out[358]: 'pbkdf2_sha256$30000$lSv8kQ39BHE7$KQC5hRhuphYBXmBrXZBJGC+nxygfNWTDf8zQf/NNgY8='
In [360]: make_password('text', salt=['simething'])
Out[360]: "pbkdf2_sha256$30000$['simething']$D+1vJQx9W2/c9sIz/J+7iEz4d4KFPg/R+0S87n/RKR4="
In [361]: make_password('text', salt=['something'])
Out[361]: "pbkdf2_sha256$30000$['something']$NIcmOkEyg6mnH5Ljt+KvI2LVgZWg6sXS6Rh865rbhSc="
नोट्स में निर्मित "hashers" का प्रयास करें:
- प्रयुक्त Django 1.10 और अजगर 3.4
- 1. Django पासवर्ड समस्याओं
- 2. Django पासवर्ड रीसेट। मेल
- 3. क्या SuperGenPass.com से बुकमार्कलेट पासवर्ड जेनरेटर सुरक्षित है?
- 4. पासवर्ड के बिना django प्रमाणीकरण
- 5. django पासवर्ड सत्यापनकर्ता की पुष्टि
- 6. Django पासवर्ड रीसेट ईमेल विषय
- 7. जेनरेटर
- 8. जेनरेटर
- 9. जावा - जेपीए - जेनरेटर - @ सिकेंस जेनरेटर
- 10. django में पासवर्ड पुनर्प्राप्त कैसे करें
- 11. पाइथन जेनरेटर
- 12. पायथन जेनरेटर -
- 13. पाइथन जेनरेटर
- 14. ADO.NET DbContext जेनरेटर बनाम ADO.NET पॉको एंटिटी जेनरेटर (ऑब्जेक्ट कॉन्टेक्स्ट)
- 15. जेनरेटर थ्रेडसेफ हैं?
- 16. जावा बिल्डर जेनरेटर समस्या
- 17. सीएसएस से पीएनजी जेनरेटर
- 18. पायथन रिवर्स जेनरेटर
- 19. पायथन कोड जेनरेटर
- 20. जावास्क्रिप्ट पार्सर जेनरेटर
- 21. क्रैपी रैंडम नंबर जेनरेटर
- 22. "टैग क्लाउड" जेनरेटर?
- 23. सी #/.NET लेक्सर जेनरेटर
- 24. संभाव्यता यादृच्छिक संख्या जेनरेटर
- 25. हाइबरनेट आईडी जेनरेटर
- 26. एक्सएसडी कोड जेनरेटर
- 27. यादृच्छिक फ़ाइल जेनरेटर (दोबारा!)
- 28. PHP MIDI जेनरेटर
- 29. PHP एपीआई कुंजी जेनरेटर
- 30. टोन जेनरेटर क्रैश एंड्रॉइड
यह बदल सकता है, लेकिन आपको "Django हैश और नमक से निपटने" की आवश्यकता नहीं है क्योंकि आप ['.set_pass का उपयोग कर सकते हैं शब्द() 'सहायक कार्य] (https://docs.djangoproject.com/en/1.10/ref/contrib/auth/#django.contrib.auth.models.User.set_password) एक' उपयोगकर्ता 'ऑब्जेक्ट पर जो प्रक्रिया करता है आपके चुने हुए कुंजी व्युत्पन्न फ़ंक्शन के साथ पासवर्ड प्रदान किया गया है और इसके साथ '.password' फ़ील्ड/विशेषता सेट करता है। –