django内置的密码加密与解密

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_16069927/article/details/81162465

Django 内置的User类提供了用户密码的存储、验证、修改等功能,默认使用pbkdf2_sha256方式来存储和管理用的密码。

django通过PASSWORD_HASHERS来设置选择要使用的算法,列表的第一个元素 (即settings.PASSWORD_HASHERS[0]) 会用于储存密码, 所有其它元素都是用于验证的哈希值,它们可以用于检查现有的密码。意思是如果你打算使用不同的算法,你需要修改PASSWORD_HASHERS,来将你最喜欢的算法在列表中放在首位。

一个settings中的Password_hashers看起来是这样的:

PASSWORD_HASHERS = (

    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
    'django.contrib.auth.hashers.BCryptPasswordHasher',
    'django.contrib.auth.hashers.SHA1PasswordHasher',
    'django.contrib.auth.hashers.MD5PasswordHasher',
    'django.contrib.auth.hashers.CryptPasswordHasher',
)

具体的密码生成以及验证实现

from django.contrib.auth.hashers import make_password, check_password
pwd='4562154'
mpwd=make_password(pwd,None,'pbkdf2_sha256')  # 创建django密码,第三个参数为加密算法
pwd_bool=check_password(pwd,mpwd)# 返回的是一个bool类型的值,验证密码正确与否
展开阅读全文

没有更多推荐了,返回首页