django的通过set_password注册密码加密

django的通过set_password注册密码加密,解密

这个是因为我正好回顾时遇到这个问题,网上也找不到,试了很久终于解决出来
一、加密
1、
这个问题首先要用到django自带的AbstractUser,即首先在你的用户模块models里面导入AbstractUser

from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
	pass

在这里插入图片描述
2、
既然上面用到了AbstractUser,那么我们就要在setting里面写一个声明

# 声明使用的是django自带的认证系统
AUTH_USER_MODEL = 'register.User'

在这里插入图片描述
我是由于把setting.py放在了自定义settings文件夹中,并改了个名为dev,你们不用管,直接就写在setting中就可以了

3、
接着在串行器中重写方法,因为validated在上一个def validate里已经整理好了,所以直接保存就可以了

user = super().create(validated_data)
user.set_password(validated_data['password'])
user.save()

在这里插入图片描述
4、
运行成功后,打开数据库查看,他就已经是加密状态的了
在这里插入图片描述
二、解密
解密其实就更简单了
1、
首先导入一个check_password包

from django.contrib.auth.hashers import check_password

2、
接着

pwd_bool = check_password(password,pwd)

前面一个’password’是判断是否等于后面的’pwd’。如果相等,就返回一个True;不相等,就返回False。

它只会返回一个布尔值。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值