我需要生成将存储在Redis服务器中的API密钥和密钥.生成密钥和密码的最佳方式是什么?

我正在开发一个基于Django-Tatypie框架的应用程序.

推荐答案

python3.6+美元

import secrets

generated_key = secrets.token_urlsafe(length)

older versions of python美元:

为了获得生成随机数的非常安全的方法,您应该使用Uradom:

from binascii import hexlify

key = hexlify(os.urandom(length))

这将生成字节,如果需要字符串,请拨打key.decode()

对于general non-secure random strings,如果设置更多,您只需通过python方式生成所需长度的密钥即可:

import random
import string

def generate_key(length):
    return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length))

And then you can just call it with your desired length key = generate_key(40).
You can specify what alphabet you want to use, for example using only string.ascii_lowercase for key consisting of only lowercase letters etc.

Tatypie中也有用于Api身份验证的模型,可能值得一查https://django-tastypie.readthedocs.org/en/latest/authentication.html#apikeyauthentication

Django相关问答推荐

如何在Django中获取标记<;输入>;的';值';属性?

Django:添加第二个';详细';用于检索额外信息的视图

Pytest-django - 测试创建和传递所需的用户对象

Django - 使用在 URL 中传递的父类主键从子类中过滤对象

设置 SECURE_HSTS_SECONDS 可以不可逆转地 destruct 您的网站?

如何让 Django 在模板更改时重新启动运行服务器?

Django 模板文件夹

Django 独立脚本

Django {{ MEDIA_URL }} 空白 @DEPRECATED

如何运行克隆的 Django 元素?

Django 模板列表的第一个元素

对 django 的 Http Delete 请求返回 301

如何在不发送信号的情况下保存模型?

import_module 的 Django 1.9 ImportError

具有 2 种语言的 Django 站点

Django中reverse()和reverse_lazy()的区别

Django 模型方法 - create_or_update

Django模板过滤器(filters)、标签(tags)、simple_tags和inclusion_tags

Django将整数模型字段的范围设置为约束

如何从 django 请求中获取完整的 url