首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成唯一密钥

生成唯一密钥
EN

Code Review用户
提问于 2018-07-26 15:50:18
回答 1查看 4.7K关注 0票数 8

我来自Ruby背景,我正在学习Python。这是我创建的用于生成URL安全唯一键的方法:

代码语言:javascript
复制
import random;

def generate_unique_key():
    array = []
    for letter in range(97,123):
        array.append(chr(letter))
    for letter in range(65,91):
        array.append(chr(letter))
    for number in range(0,10):
        array.append(number)
    for char in ["-", ".", "_", "~"]:
        array.append(char)

    random_values = random.sample(array, 15)
    random_values = map(lambda x: str(x), random_values)
    return "".join(random_values)

print(generate_unique_key())

来自Ruby背景的我首先对不能直接调用列表中的join而不得不从字符串实例调用它感到困惑。

同样,在Ruby中,我可以直接编写类似于random.sample(array, 15).join("")的东西,而不必将它们全部转换为字符串,但我相信这就是join()的工作方式。

虽然这是可行的,但这个函数怎么会更像毕达通呢?

EN

回答 1

Code Review用户

发布于 2018-10-27 09:26:19

大多数pythonic生成URL安全唯一密钥或令牌的方法是使用秘密模块

使用secrets.token_urlsafe,它将返回一个安全的随机URL安全文本字符串。秘密模块使用同步方法,确保没有两个进程能够同时获得相同的数据。

代码语言:javascript
复制
import secrets
print(secrets.token_urlsafe(32))

产出:

代码语言:javascript
复制
GzWfp5xCcuFsnEUb9qqN_v94_XOx9hPwSGszdx4rNBk

您可以根据需要更改字节大小。

票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/200355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档