Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django的python密码生成器_Python_Django - Fatal编程技术网

django的python密码生成器

django的python密码生成器,python,django,Python,Django,如何手动为django生成密码?例如,在其他应用程序中,但使用与django相同的数据库 pbkdf2_sha256$10000$T0BzrDwfZSrI$pSgvDEam9V9jcdYpYDVkYMMwtSnRrFdf6Aqow82Tjr8= 我想这可能是你想要的: 生成密码(密码[,salt,hasher]) 在中创建哈希密码 此应用程序使用的格式。它需要一个强制参数: 密码为纯文本。或者,您可以提供盐和盐 要使用的哈希算法,如果不想使用默认值(首先 输入密码(哈希设置)。当前支持的算法

如何手动为django生成密码?例如,在其他应用程序中,但使用与django相同的数据库

pbkdf2_sha256$10000$T0BzrDwfZSrI$pSgvDEam9V9jcdYpYDVkYMMwtSnRrFdf6Aqow82Tjr8=

我想这可能是你想要的:

生成密码(密码[,salt,hasher])

在中创建哈希密码 此应用程序使用的格式。它需要一个强制参数: 密码为纯文本。或者,您可以提供盐和盐 要使用的哈希算法,如果不想使用默认值(首先 输入密码(哈希设置)。当前支持的算法 它们是:“pbkdf2_sha256”、“pbkdf2_sha1”、“bcrypt_sha256”(请参阅使用bcrypt 使用Django时,“bcrypt”、“sha1”、“md5”、“无盐_md5”(仅适用于 向后兼容性)和“crypt”(如果您有crypt库) 安装。如果password参数为None,则表示密码不可用 返回(check_password()将永远不会接受的密码)


我想写一个没有django的函数

幸运的是Django是开源的,所以你可以去拿你需要的东西

最常见的(不是最安全的)散列算法是
md5
。从Django的密码系统中提取一些想法可以是以下代码:

import hashlib

def make_password(password):
    assert password
    hash = hashlib.md5(password).hexdigest()
    return hash

def check_password(hash, password):
    """Generates the hash for a password and compares it."""
    generated_hash = make_password(password)
    return hash == generated_hash


>>> hash = make_password('hello123')
>>> hash
'f30aa7a662c728b7407c54ae6bfd27d1'
>>> check_password(hash, 'hello123')
True
>>> check_password(hash, 'Hello123')
False
使用
make_password
生成散列,并使用
check_password
检查输入的密码是否与存储的密码相同


正如@Emil所指出的,Django支持多个密码散列器,如pbkdf2_sha256和pbkdf2_sha1,将字符串存储为一个由
$
分隔的3倍值:
算法$salt$hash
salt
是一个随机生成的字符串,用于防止同一密码在数据库中重复。

谢谢,但此方法用于django应用程序。我想要不使用django的write函数,如下所示: