哪一种使用起来更安全? uuid、binascii.hexlify(os.urandom()) 还是 random.SystemRandom()?

2024-03-27

我想创造独一无二的<client-key> and <client-secret>对于自行注册该服务的用户。

因此,我正在寻找相同的内容并提出了以下选项:

  • uuid https://docs.python.org/2/library/uuid.html#uuid.UUID
  • binascii.hexlify(os.urandom(x))
  • random.SystemRandom() https://docs.python.org/2/library/random.html?highlight=random.systemrandom#random.SystemRandom

这是一个愚蠢的问题,但我想知道哪种实现使用起来更安全(有正确的解释)?为什么?与其他产品相比,使用它有什么优势?

Note:

AFAIK, random.SystemRandom() uses os.urandom(x)。所以比较主要是在uuid and random.SystemRandom().

到目前为止,这是我尝试过的:

1)

import random
temp = random.SystemRandom()
random_seq = ''.join(temp.choice(CHARACTER_SET) for x in range(x))
>>> 'wkdnP3EWxtEQWnB5XhqgNOr5RKL533vO7A40hsin'

2)

import uuid
str(uuid.uuid4())
>>> 'f26155d6-fa3d-4206-8e48-afe15f26048b'

我不确定解决方案。因此,任何帮助将不胜感激。


P.S.如果有任何解决方案适用于 Python 2.x 和 3.x,那就太好了。


这没有什么区别,all其中有使用os.urandomPython 3 和 2 中均如此。uuid4 just 实例化一个新的UUID通过传入对象16随机字节 https://github.com/python/cpython/blob/3.6/Lib/uuid.py#L600 to it:

def uuid4():
    """Generate a random UUID."""
    return UUID(bytes=os.urandom(16), version=4)

所以从角度来看随机性是如何产生的,这些没有区别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

哪一种使用起来更安全? uuid、binascii.hexlify(os.urandom()) 还是 random.SystemRandom()? 的相关文章

  • 如何用spaCy获取依赖树?

    我一直在尝试寻找如何使用 spaCy 获取依赖树 但我找不到任何有关如何获取树的信息 只能在如何导航树 https spacy io usage examples subtrees 如果有人想轻松查看 spacy 生成的依赖关系树 一种解决
  • 蟒蛇 |如何将元素随机添加到列表中

    有没有一种方法可以将元素随机添加到列表中 内置函数 ex def random append lst a lst append b lst append c lst append d lst append e return print ls
  • DataFrame 中的字符串,但 dtype 是对象

    为什么 Pandas 告诉我我有对象 尽管所选列中的每个项目都是一个字符串 即使在显式转换之后也是如此 这是我的数据框
  • 对打开文件的脚本进行单元测试

    我编写了一个脚本 它打开一个文件 读取内容并进行一些操作和计算 并将它们存储在集合和字典中 我该如何为这样的事情编写单元测试 我的问题具体是 我会测试文件是否打开 文件很大 这是unix字典文件 我如何对计算进行单元测试 我真的必须手动计算
  • 为什么 int 数组的最大大小小于 Int32.MaxValue? [复制]

    这个问题在这里已经有答案了 虽然这篇文章说它应该有效 https stackoverflow com questions 2338778 what is the maximum length of an array in net on 64
  • 如何检查包含 NaN 的列表 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在我的 for 循环中 我的代码生成一个如下所示的列表 list 0 0 0 0 sum 0 0 0 0 该循环生成所有其他数字向量 但它也
  • 如何使用注释和聚合在 Django 的 ORM 中执行此 GROUP BY 查询

    我真的不知道如何翻译GROUP BY and HAVING到姜戈的QuerySet annotate and QuerySet aggregate 我正在尝试将这个 SQL 查询转换为 ORM 语言 SELECT EXTRACT year
  • 按序列大小对 fasta 进行排序

    我目前想按序列大小对 hudge fasta 文件 10 8 行和序列 进行排序 fasta 是生物学中用于存储序列 遗传或蛋白质 的明确定义的格式 gt id1 序列 1 可以位于多行 gt id2 序列2 我运行了一个提供 tsv 格式
  • 别碰我的女人

    我讨厌的一件事迪斯图尔斯 http docs python org distutils 我猜他是邪恶的人 他这样做了 https github com python cpython blob 300dd552b15825abfe0e367a
  • 如何在python中递归复制目录并覆盖全部?

    我正在尝试复制 home myUser dir1 及其所有内容 及其内容等 home myuser dir2 在Python中 此外 我希望副本覆盖中的所有内容dir2 It looks like distutils dir util co
  • 如何获取 Matplotlib 生成的散点图的像素坐标?

    我使用 Matplotlib 生成散点图的 PNG 文件 现在 对于每个散点图 除了 PNG 文件之外 我还会also就像生成散点图中各个点的像素坐标列表一样 我用来生成散点图 PNG 文件的代码基本上是这样的 from matplotli
  • 与函数复合 UniqueConstraint

    一个快速的 SQLAlchemy 问题 我有一个 文档 类 其属性为 数字 和 日期 我需要确保没有重复的号码同年 是 有没有办法对 数字 年份 日期 进行UniqueConstraint 我应该使用唯一索引吗 我如何声明功能部分 SQLA
  • 从 Apache 运行 python 脚本的最简单方法

    我花了很长时间试图弄清楚这一点 我基本上正在尝试开发一个网站 当用户单击特定按钮时 我必须在其中执行 python 脚本 在研究了 Stack Overflow 和 Google 之后 我需要配置 Apache 以便能够运行 CGI 脚本
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • python csv按列转换为字典

    是否可以将 csv 文件中的数据读取到字典中 使得列的第一行是键 同一列的其余行构成列表的值 例如 我有一个 csv 文件 strings numbers colors string1 1 blue string2 2 red string
  • Pandas DataFrame:如何计算组中第一行和最后一行的差异?

    这是我的熊猫数据框 import pandas as pd import numpy as np data column1 338 519 871 1731 2693 2963 3379 3789 3910 4109 4307 4800 4
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • scrapy python 请求未定义

    我在这里找到了答案 code for site in sites Link site xpath a href extract CompleteLink urlparse urljoin response url Link yield Re
  • 获取运行云功能的运行时服务帐户

    有没有办法以编程方式从云功能获取运行时服务帐户的电子邮件 我知道我可以 猜测 默认的 App Engine 帐户 因为它始终是 appspot gserviceaccount com 但这不是我想要的 我本来期待有一些环境变量 https
  • 如何抑制 Pandas Future 警告?

    当我运行该程序时 Pandas 每次都会给出如下所示的 未来警告 D Python lib site packages pandas core frame py 3581 FutureWarning rename with inplace

随机推荐

  • Rails 密码将在 24 小时内过期

    在我的 Rails 3 1 应用程序中 我想为用户创建随机密码并使其过期 我正在使用 devise gem 来实现这一点 任何可用的插件expiring password在一段时间内 否则请给我一些逻辑建议来实现此功能 请把我当作一个新手
  • MySQL 连接器 C++ - 无效指针

    我正在尝试使用 MySQL C 连接器连接到数据库 我已经添加了库 并且源代码可以使用所有必要的 include 语句正确编译 我正在使用的代码如下 include
  • 逆斐波那契算法?

    对于任意 n 计算 F n 的方法有数十种 其中许多方法都具有很高的运行时间和内存使用率 然而 假设我想问相反的问题 给定 F n n gt 2 n 是多少 n gt 2 限制存在 因为 F 1 F 2 1 并且没有明确的逆 解决这个问题最
  • 将 Single> 转换为 Observable

    Goal I get a Single
  • 画家难题 - 从第一原理进行算法估计

    这个问题是基于从2001年开始 A guy 找到了一份街头油漆工的工作 在路中间画虚线 第一天他完成了 300 码 第二天完成了 150 码 第三天甚至更少 老板很生气 要求一个解释 我无能为力 那家伙说 我每天都离油漆罐越来越远 我的问题
  • 如何删除用户注册/登录表单?

    我的网站不需要用户登录功能 只有部分用户需要发布新节点 如何删除 Drupal 中的用户注册和登录表单 虽然从技术上讲可以删除登录功能 但您不应该这样做 因为那样您的管理员将永远无法登录该网站 为了删除注册功能 您只需浏览到admin us
  • 是否有适用于 Microsoft Access 的 64 位驱动程序?

    java sql SQLException Microsoft ODBC Driver Manager 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配 当我尝试使用 jdbc 从 eclipse 项目连接到 Microsoft
  • 将 IBM Lotus Notes 文件转换为文本

    如何将 nsf Lotus 文件转换为文本文件 我想编写一个java程序来读取我系统上的 nsf文件 我已经简单地尝试过 但它显示非英语字符 他们有什么方法可以正常访问它们 EDIT 该代码位于 net中并使用任何服务器的会话 我只想通过j
  • 检查 C 中是否存在文件[重复]

    这个问题在这里已经有答案了 我正在尝试在 C 应用程序中打开文件 在尝试读取文件之前如何检查文件是否存在 尝试打开它 FILE file file fopen file name r if file file exists and can
  • Numpy - 将 x,y 坐标的二维数组转换为坐标之间距离的平面数组

    我想使用 numpy 将 x y 坐标的二维数组转换为每个坐标之间的距离的平面数组 请注意 第一对 x y 坐标应保留在输出数组中 作为稍后重建坐标的参考 此过程的目的是减小数组的大小 以提高网络共享的速度 例如 input 8081441
  • 如何将数组中的数字从低到高排序

    我正在尝试将一系列价格从低到高排序 我可以让它工作 但不是我想要的方式 长话短说 排序器将数字按如下顺序排列 100 10900 200 290 而不是像这样排序 100 200 290 10900 这是我正在执行此操作的代码 void f
  • 如何从命令行使用 PyCharm 作为 GIT diff 工具?

    On the PyCharm 帮助网站 https www jetbrains com pycharm help running pycharm as a diff or merge command line tool html我发现您可以
  • Comparator 是一个类型类吗?

    我一直在阅读 Scala 中的类型类 并认为我已经很好地掌握了它 直到我想起了 Java 的类型类java util Comparator 如果我理解正确的话Ordering是类型类的原型示例 我能想到的唯一区别Comparator和一个实
  • React:如何读取音频文件并在上传前提供预览?

    我正在处理音频文件上传 并希望在上传开始之前音频文件可用于音频播放器 1 用户选择音频文件 2 音频文件可供收听 作为预览 3 如果一切正常 用户按下提交 我完成了第一步 基本上创建了一个文件输入 有效 但是 当我将所选音频文件链接到音频播
  • 从3.4升级后如何在python3.5中使用pip?

    我在 Ubuntu 上 我有 python2 7 它是预安装的 python3 4 今天之前使用过 和 python3 5 我今天升级到的 并行安装 他们自己都工作得很好 但是 我想用pip安装一些软件包 我不知道如何为我的 3 5 安装执
  • 单击 TextView 中的 HTML 链接会引发奇怪的 AndroidRunTimeException

    我正在从我的网站检索一些 HTML 并将其放入 TextView 中 此 HTML 可能包含指向网页 电子邮件等的锚标记 我试图使这些链接可单击 以便当用户单击它时 默认浏览器会打开该网页 我是按照这个答案的说明来做到这一点的 如何使 Te
  • Pandas 函数:DataFrame.apply() 运行顶行两次[重复]

    这个问题在这里已经有答案了 我有两个版本的函数使用Pandas for Python 2 7去经历inputs csv 逐行 第一个版本使用Series apply on a single column 并按预期遍历每一行 第二个版本使用D
  • 使用 cURL 传递 $_POST 值

    你如何通过 POST使用值到页面cURL 应该可以正常工作 data array name gt Ross php master gt true You can POST a file by prefixing with an for
  • jinja2 模板未找到且内部服务器错误

    Python代码 from flask import Flask render template app Flask name app route def hello return render template testing html
  • 哪一种使用起来更安全? uuid、binascii.hexlify(os.urandom()) 还是 random.SystemRandom()?

    我想创造独一无二的