pycharm中做web应用(14)基于Django和mysql 做用户登录验证4

21 篇文章 8 订阅
12 篇文章 2 订阅

pycharm中做web应用(14)基于Django和mysql 做用户登录验证4在

在前面的user表中,为了

基于DJango的密码的加密、验密操作

在Django架构下,django.contrib.auth.hashers 是django内置的加解密包,模块中定义了相关的加解密函数和类,主要有:

		1. make_password() 	
		2. check_password() 	
		3. mask_hash() 	
		4. get_hasher() 	
		5. UnsaltedMD5PasswordHasher() 	
		6. is_password_usable() 	
		7. BCryptPasswordHasher() 	
		8. identify_hasher()

使用之前,首先要导入该包,例如:

		from django.contrib.auth.hashers import make_password

下面举例进行说明:

加密

加密就是使用django.contrib.auth.hashers模块的make_password方法,把用户输入的名文加密后,获取加密密文的方法,原型为:

	make_password(原始密码[,固定字串][,加密方式])
	 参数1: 原始密码: 需要加密的字符串
         参数2: 是否每次都生成不同的加密串,默认为None, 如果给定任意一个字符串,则表示每次生成相同的加密串。
         参数3: 表示加密算法,常见的加密算法有:
                ‘pbkdf2_sha256’,  'pbkdf2_sha1',   'bcrypt_sha256',  'unsalted_md5' 等.

动态密码常见的有下面几种形式:

	make_password(原始密码) 
	make_password(原始密码,None) 
	make_password(原始密码,'')

每次产生的密码均不同,返回值为加密后的密码,例如输入明文密码为:‘123456’,得到密文的代码如下:

    from django.contrib.auth.hashers import make_password     
    print(make_password('123456'))  # 把明文密码转换为密文密码

结果如下图:

在这里插入图片描述要得到固定的加密密码,需要使用:

	make_password(原始密码[,固定字串]) 或
	make_password(原始密码[,固定字串][,加密方式])

的形式,例如:

在这里插入图片描述我们可以把加密后的密文再存储到user表中,这样,即使有人破解了数据库,查询了user表,也无法达到用户密码,安全性大大提高了。

验密

django.contrib.auth.hashers模块的验密函数原型为:

		check_password (原始密码, 加密后的密码),验证相同return True,否则返回False

利用上面的密码进行验证:
首先导入:

	from django.contrib.auth.hashers import check_password  

执行结果如下:
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值