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


    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    		from django.contrib.auth.hashers import make_password
    
    • 1

    下面举例进行说明:

    加密

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

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

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

    	make_password(原始密码) 
    	make_password(原始密码,None) 
    	make_password(原始密码,'')
    
    • 1
    • 2
    • 3

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

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

    结果如下图:

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

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

    的形式,例如:

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

    验密

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

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

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

    	from django.contrib.auth.hashers import check_password  
    
    • 1

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

  • 相关阅读:
    《数字化与碳中和(园区篇)》报告正式发布,助力加快推进国家“双碳”战略实施
    安装自己build iso报错
    深入浅出理解SVM支持向量机算法
    大数据团队必备的最佳提效工具推荐
    【uniapp】通用列表封装组件
    set/ multiset 容器
    PyTorch微调权威指南3:使用数据增强
    图片的谱表征
    SPI配置
    HCIP-OSPF域间路由
  • 原文地址:https://blog.csdn.net/cyjbj/article/details/127624642