Python Django之密码的加密和解密

通过django自带的类库,来加密解密很方便,下面来简单介绍下;

导入包:

from django.contrib.auth.hashers import make_password, check_password

从名字就可以看出来他们的作用了。

一个是生成密码,一个是核对密码。

注意:

[直接在python命令解释器导入会报错:

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

原因:

python启动方式python,会启动交互解释器,需要告诉Django使用哪个设置文件,Django会搜索DJANGO_SETTINGS_MODULE环境变量,它被设置在settings.py中,

需要设置为:multiDatabase.settings

 

解决方法:用python manage.py shell 来启动命令解释器而不是python,因为python manage.py shell中包含了Django使用哪个settings.py文件]

例如:

make_password("123456")

得到结果:

u'pbkdf2_sha25615000MAjic3nDGFoi$qbclz+peplspCbRF6uoPZZ42aJIIkMpGt6lQ+Iq8nfQ='

另外也可以通过参数来生成密码:

>>> make_password("123456", None, 'pbkdf2_sha256')

校验:

校验就是通过check_password(原始值, 生成的密文)来校验密码的。http://www.cnblogs.com/ccorz/p/Django-zhi-mi-ma-jia-mi.html

>>> check_password("123456","pbkdf2_sha25615000MAjic3nDGFoi$qbclz+peplspCbRF6uoPZZ42aJIIkMpGt6lQ+Iq8nfQ=")
True
转自博客园:http://www.cnblogs.com/ccorz/p/Django-zhi-mi-ma-jia-mi.html作者:ccorz

猜你喜欢

转载自blog.csdn.net/ynlflixin/article/details/80272511