gpt4 book ai didi

python - 与 flask 一起使用的 django 1.10 密码

转载 作者:行者123 更新时间:2023-11-28 22:32:24 32 4
gpt4 key购买 nike

我有一个 Django 项目,我想将其转移到 Flask 中。问题是像 django 一样加密和解密密码。是否有可能实现与 django 1.10 中相同的加密和解密。那就是我想在 flask 中以与使用 django 相同的方式创建和验证密码。谷歌搜索给了我 passlib 但文档不清楚 django 版本(1.10)。谢谢。

最佳答案

(此处为 Passlib 开发人员)

Passlib 应该绝对能够处理这种情况,让我知道文档的哪些部分不清楚,我可以尝试清理它们! (最新文档位于 http://passlib.readthedocs.io/en/stable/ )

这应该有助于您入门(假设 passlib >= 1.7)。

处理事情的最简单方法是创建一个 CryptContext 实例,配置数据库中的所有哈希格式。它将从那里负责散列和验证。

对于 Django 1.10,您可能需要如下内容:

>>> from passlib.context import CryptContext
>>> pwd_context = CryptContext(
default="django_pbkdf2_sha256",
schemes=["django_argon2", "django_bcrypt", "django_bcrypt_sha256",
"django_pbkdf2_sha256", "django_pbkdf2_sha1",
"django_disabled"])

您可以将上面的“默认”调整为您希望新哈希使用的任何方案——甚至可以将非 django 哈希格式(如“bcrypt”)插入列表中。您还可以删除数据库中不存在的任何内容。

一旦上下文对象存在,只需调用 .hash() 来散列密码,自动生成盐值:

>>> hash = pwd_context.hash("foo")
>>> hash
'pbkdf2_sha256$29000$uzyeK0HKJIBR$XQtpjc9nfTdteF1fpk1Jk7FCePwB7S2JLuggiE8UBE4='

然后进行以下验证散列:

>>> pwd_context.verify("foo", hash)
True
>>> pwd_context.verify("bar", hash)
False

passlib 的 CryptContext tutorial 中有更多详细信息如果你需要的话。

关于python - 与 flask 一起使用的 django 1.10 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40949183/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com