是否有任何不明显的滥用 GUID 的方式?

2023-12-20

GUID 通常用于唯一地标识各种实体 - 来自外部系统、文件等的请求。像魔术一样工作 - 您调用“GiveMeGuid()”(Windows 上的 UuidCreate())函数 - 一个全新的 GUID 随时为您服务。

鉴于我的代码每次需要新的 GUID 时都会调用“GiveMeGuid()”函数,是否有任何不那么明显的方式来滥用它?


刚刚找到一个老问题的答案:.Net GUID 的确定性如何? https://stackoverflow.com/questions/1402696/how-deterministic-are-net-guids/1402724#1402724。重新引用它:

这不是一个完整的答案,但我可以告诉你,第 13 个十六进制数字始终是 4,因为它表示用于生成 GUID 的算法版本(id est,v4);另外,我引用维基百科:

WinAPI GUID 生成器的密码分析表明,由于 V4 GUID 的序列是伪随机的,因此在给定初始状态的情况下,我们可以预测函数 UuidCreate 返回的下一个 250 000 个 GUID。这就是为什么 GUID 不应该在密码学中使用,例如作为随机密钥。

所以,如果你足够幸运并获得相同的种子,你将依次打破 250k 个镜子。引用另一个维基百科文章 http://en.wikipedia.org/wiki/Guid:

While each generated GUID is not guaranteed to be unique, the total number of unique keys (2128 or 3.4×1038) is so large that the probability of the same number being generated twice is extremely small.

底线:考虑 GUID 可能是一种误用形式always unique.

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

是否有任何不明显的滥用 GUID 的方式? 的相关文章

  • 链表、数组和硬件内存缓存

    虽然之前有人问过关于链表与数组的问题 但答案大多归结为我们大多数人在某些时候可能已经学到的东西 列表擅长插入和删除 数组擅长随机访问 现在 像 Bjarne Stroustrup 这样受人尊敬的人已经argued https www you
  • 正则表达式:忽略大小写

    如何使以下正则表达式忽略大小写 它应该匹配所有正确的字符 但忽略它们是小写还是大写 G a b 假设你想要whole正则表达式忽略大小写 你应该寻找i flag http www regular expressions info modif
  • 从应用程序中删除死代码的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常觉得 在多次迭代我的代码之后 我留下了一些函数 类或其他代码行 这些代码在以前的版本中有意义 但对于新版本来说并不是很有用 我知道探查器可
  • 如何使用 Trie 进行拼写检查

    我有一个根据单词词典构建的特里树 我想用它来进行拼写检查 并建议字典中最接近的匹配项 也许对于给定数量的编辑x 我想我会在目标单词和字典中的单词之间使用 levenshtein 距离 但是有没有一种聪明的方法可以遍历 trie 而不需要对每
  • 基本编程/算法概念[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我即将 与其他程序员一起 在我的高中
  • Google 文件系统中的块大小问题

    谷歌文件系统论文 http labs google com papers gfs html 块大小是关键设计之一 参数 我们选择了64MB 这比典型文件大得多 系统块大小 每个块 副本存储为普通 Linux 文件放在 chunkserver
  • 无扫描器解析器生成器

    序幕 尽管解析器 上下文无关语法 识别的语言集严格大于扫描器 常规语法 识别的语言集 但大多数解析器生成器都需要扫描器 请不要试图解释其背后的原因 我很了解它们 我见过解析器 不需要像这样的扫描仪 Elkhound http scottmc
  • 数据库、表和列命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我设计数据库时 我总是想知道是否有命名数据库中项目的最佳方法 我经常问自己以下问题 表名应该是复数吗 列名应该是单数吗 我应该为表或列添加前
  • 编程语言语法中尾随逗号的历史

    许多编程语言允许在其语法中在列表中的最后一项后面使用尾随逗号 据说这样做是为了简化自动代码生成 这是可以理解的 作为示例 以下是 Java 中完全合法的数组初始化 JLS 10 6 数组初始值设定项 http java sun com do
  • 如何为抽象工厂创建的类设置特定属性?

    是否可以让具体工厂使用抽象工厂模式为其创建具有特定类型参数的具体类 或者由各自的具体工厂创建的不同具体类是否需要具有相同的字段 例如 在下图中 您将如何使用客户端 应用程序 给出的不同参数集来实例化 WinButton 和 OSXButto
  • 类是否应该有静态和非静态成员

    我试图找出一个类何时适合同时具有静态和非静态函数 又名 obj new ClassA obj gt doOOPStuff something ClassA doStaticStuff Note This example is done in
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • 在数字集合中查找最接近的匹配[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 哪些不同的术语表示相同的事物(或不同的术语,但人们认为它们表示相同的意思)? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 面向对象编程语言中的引用默认情况下是否应该不可为空? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Mysql UUID_SHORT() 与 UUID() 相当吗

    如果您愿意的话 请快速提出问题或意见 我需要为数据库表生成一些 UUID 自动递增密钥不会减少它 因为我还需要密钥在数据库和系统中保持唯一 UUID 工作正常 但其输出对于行将导出到的某些系统来说太长 UUID SHORT 做得很好 我已经
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • Yegge 的原型模式示例如何处理实例变量?

    我喜欢史蒂夫 耶吉的原型模式示例 http steve yegge blogspot com 2008 10 universal design pattern html并决定快速制作一个概念验证示例 不过 我并没有真正考虑清楚 虽然它非常适
  • 查找两个大小为 n 的数组中第 n 大数的算法

    我有这个问题 给定两个大小为 n 的排序列表 存储在数组中 找到 O log n 计算并集中第 n 大元素的算法 两个列表 我可以看到这里可能有一个技巧 因为它需要第 n 个最大的元素 并且数组的大小也是 n 但我不知道它是什么 我在想我可
  • 如何发布/销售/推广半商业/开源项目? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经开发了一个 PHP 框架 总共花了大约 3 周的时间 但它已经准备好发布了 如果我选择这样做的话 在目前的经济形势下 我不能仅仅接受

随机推荐

  • seleniumexecuteScript 在 IE 上挂起

    好的 我已经在网上搜索了两天来解决模式对话框问题 那里有很棒的信息 除了 IE 之外 一切都有效 我正在尝试打开文件上传对话框并选择一个新文件 我创建了 autoIT 脚本 它们在 FF 和 Chrome 上运行得很好 当我尝试使用 IE
  • Javascript 将事件附加到类名

    如果我有 10 个项目 带有类名keyword div class keyword div 例如 我如何附加事件click 在此元素上 我尝试了以下操作 但没有运气 没有出现警报 document getElementsByClassNam
  • 如何简化空安全的compareTo()实现?

    我正在实施compareTo 像这样的简单类的方法 能够使用Collections sort 以及 Java 平台提供的其他好处 public class Metadata implements Comparable
  • android 改造,使用这种格式发布整个 Pojo

    我想在retrofit2中发布这种请求 所以如果有人对此有想法 那么这将对我有很大帮助 reqObject task singleUser taskData userID 1 是的 好问题 这是一些什么无法理解 for Beginner 所
  • 如何从 SQL Server 表获取 JSON 对象?

    我有一个视图 我想将其转换为 JSON 我可以使用什么 SQL 在服务器上生成需要返回的 JSON 字符串 Author Thiago R Santos Create date Aug 3rd 2008 Description Return
  • 使用 Gradle 2.2.1 和 Android Studio 1.2.2 构建项目

    我想从 Eclipse 切换到 Android Studio 然后我下载 k9mail 开源项目并决定将其导入 AS 中 我不熟悉 AS 和 Gradle 以及构建系统 我安装 Android Studio 1 2 2 版本和 Gradle
  • 不支持的方法:GradleProject.getBuildScript()

    我在 mac os x 上将 adt 项目 导出并创建 gradle 文件后 导入 Android Studio 时遇到此错误 android studio 版本是 3 6 最新 gradle 版本是 1 8 最新 错误显示为 不受支持的方
  • 寻找 Jetpack Compose YouTube 视频播放器包装依赖项

    Intro 我是 Jetpack Compose 的新手 对我来说 在第一次尝试时理解或让所有内容都正确并不容易 这就是为什么我喜欢查看其他人的开源工作以更好地理解该主题 Problem 我当前的问题是我必须将 YouTube 视频嵌入到我
  • 使用 POST 作为 URL 字符限制的解决方法

    如果你有一个API 仅仅因为URL长度限制和请求中传递复杂参数而支持POST操作 你还能说你有RESTful架构吗 上面的内容基本上意味着 对于这个特定的 只读 API GET 和 POST 之间没有语义差异 因此可以使用 GET 完成的操
  • CPanel SQLSTATE[HY000] [1045] 用户访问被拒绝

    我是 Cpanel laravel 托管的新手 我面临一个具体问题SQLSTATE HY000 1045 用户 mbaam trodian localhost 的访问被拒绝 使用密码 YES SQL 从users where email 电
  • 使用 ReSharper 进行 AngularJS 单元测试

    我正在尝试为与 ReSharper 测试运行程序一起运行的 AngularJS 控制器进行 Jasmine 单元测试 以便我可以在 VS 2012 中的一个位置运行客户端和服务器端测试 我遇到了一个问题 即 ReSharper 测试运行程序
  • Spring Data Mongo 可以只更新文档中的脏字段吗?

    我已经开始使用spring data mongo对于有很多东西需要持久化的应用程序 我们实际上选择了 mongo 因为它是这样宣传的 现在 我们严重沉迷于 Spring 我们发现使用它的一些功能我们的生活非常轻松 感谢 Spring 数据人
  • DotNet 舍入日期时间为最后 15 分钟 [重复]

    这个问题在这里已经有答案了 是否有函数可以将日期时间四舍五入到上个季度 例子 08 03 00 becomes 08 00 00 08 14 00 becomes 08 00 00 08 15 00 stays 08 15 00 08 16
  • 了解 DICOM 图像内的 BPP

    几天以来我一直在使用 FO DICOM 处理 DICOM 文件 我使用一组 dicom 文件进行测试 并且打印了 光度解释 和 每像素样本 值 以便更好地了解我正在处理的图像类型 光度解释的结果是 MONOCHROME2 每像素样本的结果是
  • MySQL ODBC 配置

    我已经成功地让我的 Access 作为 MySQL 的前端 我已经设法通过连接字符串使其工作 但由于代码中的一些细节 我想将 DSN 配置保存为用户 DSN 我遇到了一个具体问题 我需要使用option 3在我的连接字符串中 因为没有opt
  • java.lang.NumberFormatException:需要一个 int,但在第 1 行第 8454 列处为 0.6

    我在演示项目中使用改造库进行调用 我收到以下错误 java lang NumberFormatException 预期为 int 但在第 1 行第 8454 列路径 result results ads 2 acres 处为 0 6 我知道
  • 创建默认结构的最惯用方法

    要创建默认结构 我曾经看到过fn new gt Self在 Rust 中 但是今天 我发现Default 因此有两种方法可以创建默认结构体 struct Point x i32 y i32 impl Point fn new gt Self
  • MongoDB 字符串转int

    我想将MongoDB值字段的字符串转换为整数 然后计算平均值 这是我的 JSON id ObjectId 5c49f398fc0078178c76705b my json data Time Created ISODate 2019 01
  • 匹配可变参数非类型模板

    假设我有两个结构 Foo and Bar template
  • 是否有任何不明显的滥用 GUID 的方式?

    GUID 通常用于唯一地标识各种实体 来自外部系统 文件等的请求 像魔术一样工作 您调用 GiveMeGuid Windows 上的 UuidCreate 函数 一个全新的 GUID 随时为您服务 鉴于我的代码每次需要新的 GUID 时都会