【Django】调用django的pbkdf2_sha256加密算法测试

基于django搭建的系统中,用到pbkdf2_sha256((Password-Based Key Derivation Function 2))加密算法,这里做些代码测试、总结。

  • PBKDF2简介
    • PBKDF2是一种基于密码的密钥派生函数,用于从用户提供的密码中生成加密密钥。
    • 全称是Password-Based Key Derivation Function 2,即基于密码的密钥派生函数2。
    • PBKDF2的主要目的是通过引入计算成本高的过程,使得从加密密钥中逆向推导出原始密码的难度大大增加,从而提高密码的安全性。

1.settings.py文件配置

PASSWORD_HASHERS = (
    'django.contrib.auth.hashers.MD5PasswordHasher',
    '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.CryptPasswordHasher',
)

SECRET_KEY = '9z%v-4&h$86qo@o8%c7ep^it*5$%sscl5hd$emb070pgo=1$6#'

2.生成SECRET KEY

from django.core.management.utils import get_random_secret_key
print( get_random_secret_key() )

# hgic$t55335b7(z9h(gs&1j2+ralahabczs-hq0h&49erm1^&k

3.pbkdf2_sha256测试

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

import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'YouliTest.settings')
# django.setup()

# DJANGO_SETTINGS_MODULE=YouliTest.settings;

pwd = '123456789'
mkpwd = make_password(pwd, None, 'pbkdf2_sha256')  # 创建django密码,第三个参数为加密算法
print( 'make_password 测试: %s' % (mkpwd) )

mkpwd_bool = check_password(pwd, mkpwd)  # 返回的是一个bool类型的值,验证密码正确与否
print( 'check_password 测试: %r' % (mkpwd_bool) )

# make_password 测试: pbkdf2_sha256$100000$CsSTgYxLUkkr$jHH29Qq+QZ2JoTXBPKymXjYBQoXPWNO9V9ZAk+I9V3Q=
# check_password 测试: True

4.异常问题记录
django.core.exceptions.ImproperlyConfigured: Requested setting PASSWORD_HASHERS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
  • 问题原因
    • settings.py文件未配置,配置好后需要在代码中引入或在运行参数中引入
    • Run/Debug Configurations参数引入示例如下:
    • 在这里插入图片描述

相关推荐

  1. django对称加密算法中间件

    2024-04-21 06:36:04       62 阅读
  2. Django调用SECRET_KEY对数据进行加密

    2024-04-21 06:36:04       29 阅读
  3. bash 双hash算法sha256写法

    2024-04-21 06:36:04       64 阅读
  4. Django调用mysql

    2024-04-21 06:36:04       41 阅读
  5. django调用矩阵分解推荐算法模型做推荐系统

    2024-04-21 06:36:04       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 06:36:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 06:36:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 06:36:04       87 阅读
  4. Python语言-面向对象

    2024-04-21 06:36:04       96 阅读

热门阅读

  1. 数据挖掘与数据分析

    2024-04-21 06:36:04       55 阅读
  2. C# 反射基础

    2024-04-21 06:36:04       40 阅读
  3. 浏览器原理之浏览器机制

    2024-04-21 06:36:04       41 阅读
  4. html5与css3前端学习笔记

    2024-04-21 06:36:04       32 阅读
  5. 分类与预测算法评价的介绍

    2024-04-21 06:36:04       36 阅读
  6. MySQL数据加密,模糊查询

    2024-04-21 06:36:04       33 阅读