我需要生成一个可以在 Django 中使用简单 python 脚本使用的加密密码。我需要导入什么包/模块才能实现这一目标?我正在寻找类似的东西:
from django.auth import create_password_from_string
django_password = create_password_from_string('coolpassword')
背景是,我在 server1 上有一个 PHP 应用程序,它应该与 server2 上的 Django 应用程序共享帐户。当在 PHP 应用程序中创建帐户时,我想启动一个 python 脚本,为 django 应用程序生成加密密码并将其传输到 server2。
当然,对于这个用例来说,通过 PHP 创建加密字符串会更好,但我敢打赌它更难实现。
最佳答案
您正在寻找的是 make_password .
基本用法:
只需传递您的纯文本密码,它就会返回您需要的哈希值。
此外,根据项目要求和规范,you can set the algorithm在 server2 应用程序上:只需传递 hasher 参数(注意:在 Django 中,默认值为 PBKDF2)。
环境要求:
首先,如果您是 Python 新手,我的建议是查看 PYTHONPATH env var,用于“告诉”解释器他必须在哪里搜索。 然后,如果您愿意,可以使用 Django 定义运行实例必须指向哪个设置文件。这是通过另一个环境变量 DJANGO_SETTINGS_MODULE 完成的,对于 django-admin 也可以内联设置:
django-admin runserver --settings=server2.settings
make_password 示例:
假设您的 Python/Django env/path 变量已正确配置,您将:
$ python manage.py shell
>>> from django.contrib.auth.hashers import make_password
>>> make_password('password', 'generate something random', 'pbkdf2_sha256')
结果:
'pbkdf2_sha256$36000$generate something random$0F6M8tj8Y65YXuUgfRkDAwYqrky6Ob5JN+HLPO+6Ayg='
关于python - 在简单的 python 脚本中创建 django 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099877/