hash() 随机化在密码学上是否被认为是强大的?

2023-12-04

CPython 3.3,默认情况下启用哈希随机化。在以前的版本中,可以通过指定来打开它-R命令行选项或通过设置PYTHONHASHSEED环境变量 to random.

引用了文档:

默认情况下,__hash__()str、bytes 和 datetime 的值 对象被“加盐”,具有不可预测的随机值。虽然他们 在单个 Python 进程中保持不变,但它们不是 Python 的重复调用之间是可预测的。

这是否意味着生成的值在加密方面将是强大的?


在 Python 3.3 中,哈希种子的加密强度不高;它是在启动时使用以下伪随机生成器生成的:

/* Fill buffer with pseudo-random bytes generated by a linear congruent
   generator (LCG):

       x(n+1) = (x(n) * 214013 + 2531011) % 2^32

   Use bits 23..16 of x(n) to generate a byte. */
static void
lcg_urandom(unsigned int x0, unsigned char *buffer, size_t size)
{
    size_t index;
    unsigned int x;

    x = x0;
    for (index=0; index < size; index++) {
        x *= 214013;
        x += 2531011;
        /* modulo 2 ^ (8 * sizeof(int)) */
        buffer[index] = (x >> 16) & 0xff;
    }
}

这不是加密性强.

还有哈希种子的其他问题这仍然使得强制碰撞成为可能。

Python 3.4解决了这些问题通过引入一个更安全的哈希算法默认情况下,并使其可插拔。

如果您的程序中需要加密的强随机数,请使用random.SystemRandom() or os.urandom()反而。

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

hash() 随机化在密码学上是否被认为是强大的? 的相关文章

随机推荐

  • Sendkeys.Send() 用于右 alt 键?有什么替代方案吗?

    I am working on a winform app for a touch screen monitor The app consists of a web browser and a on screen keyboard I ha
  • 是否可以在 Shell 运行时在单个菜单项内添加子菜单?

    我想在菜单项中添加此 StackLayout 并在运行时更改可见性
  • 读取 Fortran 直接访问数据和写入格式化数据 - 使用 Python 比使用 Fortran 更快?

    晚上好 我有一个用 Fortran 编写的模拟 可以生成未格式化 直接访问 数据的大文件 我想从其中一些文件生成人类可读的 ascii 文件 由于某种原因 在Python中 f open filename rb for i in xrang
  • python - seaborn:共享 X 标签未按预期工作

    我正在处理一个显示两点之间关系的数据集 例如公交车站 例如 我们有 A B C 和 D 巴士站 我想制作直方图 显示每个公交车站到达其他 3 个公交车站需要多长时间 显然 从 A 到 A 没有时间 因此 它应该为空白 当我绘制它时 我看到第
  • matplotlib 一起使用 twinx 和 twiny(如 twinxy)

    我可以同时拥有 twinx 和 twiny 即类似 twinxy 的东西 吗 我想将 CDF 放在条形图上 其中条形图的 X 轴采用对数刻度 我无法将 Y 放在一起 因为与 CDF 的 0 1 相比 条形图 y 范围非常大 有任何想法吗 T
  • 考虑到数据帧的一列中存在重复项,如何删除数据帧中的行

    嗨 亲爱的 我对列中有重复项的数据框有一个小问题 我想删除列中出现重复项的行 例如我的数据框是这样的 Value City Card Type ID 100 Michigan Silver 001 120 Angeles Gold 002
  • Azure Web 应用程序间歇性崩溃

    我们的 Web 应用程序无缘无故地开始崩溃 目前我不知道会发生什么情况 我们正在为 SOAP 服务运行基本身份验证 并为主 Web 应用程序运行 ADFS 崩溃可能发生在一天中的任何时间 这是一个测试环境 流量相当低 当检测到崩溃时 我在下
  • 使用 Http JSON AngularJS 2 时出错

    在尝试了几种在线教程后我无法使其工作 我尝试使用以下代码 import Http HTTP PROVIDERS from angular2 http Component viewProviders HTTP PROVIDERS templa
  • 默认 HTML/CSS 链接颜色是什么?

    我需要它的代码表示 比如 FFFFFF 从 HTML5 开始 超链接的前景色等正在以以下形式实现标准化 预期默认渲染行为指南 特别是 取自该部分措辞内容 未访问和已访问的超链接的建议默认颜色如下 link color 0000EE visi
  • 在写入时读取 XML 文件(用 Python)

    我必须监视全天运行的工具正在写入的 XML 文件 但 XML 文件直到最后才正确完成并关闭 与 XML 流处理相同的约束 即时解析不完整的 XML 文件并触发操作 跟踪文件中的最后位置以避免从头开始再次处理 关于回答需要在 Python 中
  • 如何根据文件扩展名过滤 git diff?

    有没有限制的选项git diff一组给定的文件扩展名 是的 如果你确保 git 扩展一个 glob 而不是你的 shell 那么它会在任何级别匹配 所以像这样的东西 引号很重要 应该可以正常工作 git diff c h
  • 如何将报亭集成到应用程序中

    我想在我的应用程序中集成 iOS5 NEWSSTAND 的新功能 但我很困惑如何开始 有谁能够帮助我 有它的示例代码吗 任何人都可以知道如何在我们的应用程序中实现它 谢谢 创建 Apple NewsStand 应用程序的非常好的教程 htt
  • 如何选择具有相同类名的所有元素?

    我有一个布尔变量 它存储在隐藏的输入字段中 基本上 如果用户已登录 则false 如果不是 那就是true 有下载按钮将链接到文件下载 我的目标是这样 如果他们没有登录 按钮将不会显示 并且链接将不起作用 如果有一个警报说他们需要登录或其他
  • IIS7 URL 重写规则执行从 *.html 文件到 *.php 文件的 301 重定向

    我想使用 IIS7 的 URL 重写模块根据特定模式创建 301 重定向 我有一个仅包含 HTML 文件的网站 我正在将该网站转换为 PHP 文件 但保留所有相同的文件名 例如 以下网址 index html contact contact
  • 使用 ag-grid 单元格内的值和 ID 进行选择?

    我对 ag grid 很陌生 正在评估它 我的项目的数据有多个查找表 即 Foo 有 Bar 类别 Baz 品牌和 Boo 类别 我希望能够在 ag grid 中编辑它们 不幸的是 这些查找表不在我的控制范围内 而且我并不总是有连续的 ID
  • 为什么“linq to sql classes”在创建类时会更改表的名称?

    我进入并在 Visual Studio 中添加一个新的 linq to sql 类 然后将一个表从数据库资源管理器拖到新的 DBML 中 新类的名称不再是复数 如果我仍然希望它是复数怎么办 如果我拖动一个不是复数的表 我会收到一堆编译错误
  • XML 到 JSON 还是数组? PHP

    我在想 如果我可以通过 func 运行 XML 来验证它 针对模式 然后将 XML 转换为 json 以便于对象访问 那么它可能能够使用和处理 XML 数据 如何轻松地将 XML 转换为 JSON json json encode simp
  • 类型“void”上不存在属性“then”

    我应该如何处理 Typescript 错误 Property then does not exist on type void 我的代码如下所示 import Component from angular core import Socia
  • C# 一旦主线程睡眠,所有线程都停止

    我有一个类运行生产者 消费者模型 如下所示 public class SyncEvents public bool waiting public SyncEvents waiting true public class Producer p
  • hash() 随机化在密码学上是否被认为是强大的?

    从CPython 3 3 默认情况下启用哈希随机化 在以前的版本中 可以通过指定来打开它 R命令行选项或通过设置PYTHONHASHSEED环境变量 to random 引用了文档 默认情况下 hash str bytes 和 dateti