Guid.NewGuid(); .NET Core 的幕后花絮

2024-01-06

昨天研究这个主题,我发现了几个有趣的问题(例如this one https://stackoverflow.com/questions/35366368/does-uuidcreate-use-a-csprng)关于 GUID 最终是如何生成的。简单来说;看起来Guid.NewGuid(); calls CoCreateGuid在 COM 中,依次调用UuidCreate在 Windows RPC 中(文档here https://msdn.microsoft.com/en-us/library/ms688568(VS.85).aspx and here https://msdn.microsoft.com/en-us/library/aa379205(v=vs.85).aspx).

我发现自己在想;当操作系统处于notWindows,例如 .NET Core 可能会出现这种情况,这是否会影响“版本”算法 https://en.wikipedia.org/wiki/Universally_unique_identifier#Versions用于生成 GUID(据我所知是 Windows 上的版本 4)?


在非 Windows 计算机上,.NET Core 将使用uuid_create https://www.freebsd.org/cgi/man.cgi?query=uuid_create在 BSD(即“版本 1”)或 libuuid 上uuid_generate_random https://linux.die.net/man/3/uuid_generate_random在 macOS 和 Linux(“版本 4”)上运行。

替换的实施CoCreateGuid函数可以在GitHub 上的 CoreCLR 源代码 https://github.com/dotnet/coreclr/blob/32f0f9721afb584b4a14d69135bea7ddc129f755/src/pal/src/misc/miscpalapi.cpp#L355.

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

Guid.NewGuid(); .NET Core 的幕后花絮 的相关文章

随机推荐

  • 删除列中项目的百分比

    我正在尝试删除存在超过 90 NA 值的列 我已遵循以下操作 但我只得到一个值作为回报 不确定我可能做错了什么 我期待一个实际的数据框 我尝试将 as data frame 放在前面 但这也是错误的 领英帖子 删除缺失超过 x 的列 行 h
  • 未捕获 Google 地图信息窗口中的点击事件

    使用 Google Map v2 我希望能够在单击 GMarker 信息窗口中的文本时触发功能 foo click myFunction marker openInfoWindowHtml span class myText span 不起
  • 字符串匹配技术

    以下字符串被视为相等 我怎样才能匹配这样的东西 Hazard Const Company hazard construction company PETERSON CHASE GENERAL ENGINEERING CONSTRUCTION
  • 获取 UITextView 中的当前段落?

    我想检测当前段落 这是到目前为止我的代码 但效果不太好 假设我有 3 个段落 当光标位于它们之间时 它会选择下一个段落 这是不对的 有一个更好的方法吗 通过这段代码 我想检测当前段落 然后更改该段落的字体 然后继续使用该字体书写 func
  • Go 中“Must”模式的内置助手

    是否有一个更内置的包装器来制作返回的函数 X error 成功执行或中止 例如regexp MustCompile 我说的是像这样的东西 http golang org src pkg text template helper go s 5
  • SecureRandom 线程安全吗?

    Is SecureRandom线程安全 也就是说 初始化之后 访问下一个随机数是否可以保证线程安全 检查源代码似乎表明确实如此 并且这个错误报告 https bugs java com bugdatabase view bug bug id
  • Google 天气 API 返回 HTTP 403 错误

    我在网站中使用 Google 天气 API 今天收到一条错误消息 指出 API 链接未返回任何数据 当我直接检查链接时 我得到一个 错误 403 谁能告诉我这个问题的解决方案并为我提供另一个 API 链接吗 API 有时会短时间停止工作 最
  • 锁定视图中的纵向方向? IOS 7

    因此 我想将主页的方向锁定为纵向 并且仅限主页 我使用的是选项卡栏控制器 因此初始视图是选项卡控制器 但首先出现的视图控制器是第一个选项卡 例如主页 我想这样做 以便当用户旋转设备时 它不会旋转到此页面上的横向 然而 所有其他页面都可以旋转
  • 如何正确使用tf.metrics.accuracy?

    我在使用时遇到一些问题accuracy函数来自tf metrics用于以 logits 作为输入的多重分类问题 我的模型输出如下所示 logits 0 1 0 5 0 4 0 8 0 1 0 1 0 6 0 3 0 2 我的标签是一种热门编
  • 通知区域“全部清除”按钮回调

    我正在开发 Android 应用程序 我必须计算应用程序通过通知启动的次数 我的问题是我无法捕获用户从通知区域按下 清除按钮 的事件 有什么方法或回调可以知道何时按下清除按钮 我读过有关deleteIntent的内容 但我不知道如何使用它
  • 如何在 C++ 中将字符串转换为无符号字符数组

    string temp temp line substr 0 pos 我需要将字符串 temp 转换为无符号字符数组 有人可以告诉我如何做到这一点吗 我尝试了下面链接中提到的方法 但它们不起作用 如何在 Visual C 中将字符串文字转换
  • 调用第二个 ajax 请求时,f:viewParam 带有 Converter 和 ViewScoped 异常

    我有这个f viewParam我尝试绑定验证并转换userId into Player 我得到了一个意外结果
  • 用于为 Windows 资源管理器编写上下文菜单项的指针[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是一个通用问题 有没有使用 C 为
  • Android Studio 无法打开(port.lock 访问被拒绝)

    当我打开Android Studio时 出现以下错误 java io FileNotFoundException C Users HP AndroidStudio2 2 config port lock Access is denied j
  • Android API 级别 7 中的 Base64 解码器

    如何在 Android API 级别 7 上将 Base64 编码的字符串解码为字节数组 可以使用任何标准的 Java 包来完成吗 我应该从谷歌搜索结果中复制源代码吗 我应该根据 RFC 重新实现编码器和解码器吗 PS API级别8有uti
  • 如何获取量角器中所有元素的文本

    我想获取所有li在谷歌搜索栏中输入 Webdriver 后的建议文本 我写了一些这样的代码 this getElements function element all by css ul sbsb b then function text
  • 更改应用程序模块的 module.config.php 时,zf3 骨架应用程序无法工作

    当更改应用程序模块的路径时 zf3 无法正常工作 下载一个zf3骨架应用程序 更改zf3的路由 router gt routes gt home gt type gt Literal class options gt route gt de
  • 在 Rstudio 中设置 Quarto 文档的目录

    I am currently trying to transition to Quarto from Rmarkdown However I am facing an issue with setting the correct proje
  • 使用 bash 脚本将一些行写入文件

    如何在 bash 脚本中向文件写入一些行 我想将以下内容写入文件中 inputrc e A history search backward e B history search forward e C forward char e D ba
  • Guid.NewGuid(); .NET Core 的幕后花絮

    昨天研究这个主题 我发现了几个有趣的问题 例如this one https stackoverflow com questions 35366368 does uuidcreate use a csprng 关于 GUID 最终是如何生成的