pbkdf2_sha256使用问题


目前使用的Django,目前沿用了他的密码规则
生成示例:pbkdf2_sha256$260000$7HEQz4LbOGeBC0m4LwjDE8$2IY4KNoqZTUoXF+5QVfFWhO6cU/AASxxvlPhR8K2PD0=

需求:
写一段python代码,根据输入的password,生成该密码。

该回答引用GPT4的Plus-8K模型:你可以使用Django的内置方法来实现这个功能。下面是一个简单的示例:

首先确保已安装Django,如果没有安装,请运行以下命令:

pip install django

然后,你可以使用以下Python代码来生成pbkdf2_sha256哈希:

from django.contrib.auth.hashers import make_password

def generate_pbkdf2_sha256_hash(password):
    hashed_password = make_password(password, hasher='pbkdf2_sha256')
    return hashed_password

if __name__ == "__main__":
    password = input("请输入密码: ")
    hashed_password = generate_pbkdf2_sha256_hash(password)
    print("生成的哈希密码为:", hashed_password)

这段代码首先导入了Django的make_password方法,然后定义了一个名为generate_pbkdf2_sha256_hash的函数,该函数接收一个密码作为输入,并使用pbkdf2_sha256哈希方法生成哈希密码。最后,代码会提示用户输入密码,并输出生成的哈希密码。

使用Django提供的password validation模块来生成符合规则的密码。以下是一个简单的Python代码示例,它使用pbkdf2_sha256算法生成一个26位长度的密码,其中盐值是随机生成的,并且迭代次数为260000次。

from django.contrib.auth.hashers import make_password  
from django.utils.crypto import get_random_string  
  
def generate_password():  
    # 生成随机盐值  
    salt = get_random_string(12)  
    # 使用pbkdf2_sha256算法生成密码  
    password = make_password(salt, iterations=260000, password="")  
    return password  
  
# 示例输出生成的密码  
print(generate_password())
#如有帮助,恭请采纳
  • 这篇博客: Python快速进阶知识点【岗前必备技能】中的 6.5 扩展:解决sha256_password问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 由于MySQL5.x和MySQL8.*的加密规则不同,因此在使用pymysql连接数据库时,会存在密码不正确问题,以下是解决办法:

    > use mysql
    > alter user 'root'@'%' identified by 'root' password expire never;
    > alter user 'root'@'%' identified with mysql_native_password by 'root';