Django için nasıl parola oluşturabilirim? Budjango için python şifre üreticisi
pbkdf2_sha256$10000$T0BzrDwfZSrI$pSgvDEam9V9jcdYpYDVkYMMwtSnRrFdf6Aqow82Tjr8=
Django için nasıl parola oluşturabilirim? Budjango için python şifre üreticisi
pbkdf2_sha256$10000$T0BzrDwfZSrI$pSgvDEam9V9jcdYpYDVkYMMwtSnRrFdf6Aqow82Tjr8=
gibi Örneğin, diğer uygulamada, fakat Django .Çalıştırıcılı adı 'yönetici' ile aynı veritabanı kullanarak şifre sana aradığınızı belki bu düşünüyorum:
Manually managing a user’s password
make_password (şifre [tuzu hashers])
kullanılan biçiminde bir karma şifre oluşturur Bu uygulama ile. Tek bir zorunlu argümanı alır: şifreyi düz metin olarak. İsteğe bağlı olarak, varsayılanları kullanmak istemiyorsanız (PASSWORD_HASHERS ayarının ilk girişi) bir tuz ve karma algoritması kullanabilirsiniz. Şu anda desteklenen algoritmalar şunlardır: 'pbkdf2_sha256', 'pbkdf2_sha1', 'bcrypt_sha256' (bkz. Bcrypt Django ile), 'bcrypt', 'sha1', 'md5', 'unsalted_md5' (yalnızca geriye dönük uyumluluk için) ve ' Crypt kütüphanesi yüklü ise. Parola argümanı Yok ise, kullanılamaz bir parola döndürülür (check_password() tarafından hiçbir zaman kabul edilmeyecek olan).
Ben
gidip neye ihtiyacınız alabilir böylece Eh şans Django açık kaynak olduğu django
olmadan kullanmak için fonksiyon yazmak istiyorum. The functions source is visible here.En yaygın (güvenli değil) hashing için algoritma md5
'dur.
import hashlib
def make_password(password):
assert password
hash = hashlib.md5(password).hexdigest()
return hash
def check_password(hash, password):
"""Generates the hash for a password and compares it."""
generated_hash = make_password(password)
return hash == generated_hash
>>> hash = make_password('hello123')
>>> hash
'f30aa7a662c728b7407c54ae6bfd27d1'
>>> check_password(hash, 'hello123')
True
>>> check_password(hash, 'Hello123')
False
kullanın make_password
bir karma oluşturmak ve girilen şifre saklanan aynı olup olmadığını kontrol etmek için check_password
: Django'nın şifre sisteminden birkaç fikir ayıklanıyor bu kodu olabilir. algorithm$salt$hash
:
@Emil işaret ettiği gibi, Django $
ile ayrılan bir 3-misli değer olarak dizge depolanması, bu pbkdf2_sha256 ve pbkdf2_sha1 gibi çoklu şifre hashers destekler. salt
, aynı parolayın veritabanında tekrarlanmasını önlemek için rasgele oluşturulmuş bir dizedir.
teşekkürler, ancak bu yöntemler django uygulamasıyla birlikte kullanılır. Django kullanmadan yazmak için yazma işlevi istiyorum, bunun gibi bir şey: http://stackoverflow.com/questions/1306550/calculating-a-sha-hash-with-a-string-secret-key-in-python – saniaxxx26