程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何创建 GUID/UUID大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何创建 GUID/UUID?

开发过程中遇到如何创建 GUID/UUID的问题如何解决?下面主要结合日常开发的经验,给出你关于如何创建 GUID/UUID的解决方法建议,希望对你解决如何创建 GUID/UUID有所启发或帮助;

UUID(通用唯一标识符),也称为 GUID(全局唯一标识符),根据RFC 4122,是旨在提供某些唯一性保证的标识符。

然可以在几行 JavaScript 代码中实现符合 RFC 的 UUID,但有几个常见的陷阱:

  • 无效的 ID 格式(UUID 必须采用“ xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx”形式,其中 x 是 [0-9, af] 之一@H_730_10@m是 [1-5] 之一,N是 [8, 9, a 或 b]
  • 使用低质量的随机源(例如@H_85_8@math.random)

因此,鼓励为生产环境编写代码的开发人员使用严格的、维护良好的实现,例如uuid模块。

[编辑 2021-10-16 以反映生成 RFC4122-complaint UUID 的最新最佳实践]

这里的大多数读者都希望使用该uuid模块。它经过充分测试和支持。

crypto.randomUUID()功能是在支持新兴的标准Node.Js和越来越多的浏览器。

如果这些都不适合你,有这个方法(基于这个问题的原始答案):

function uuIDv4() {
  return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  );
}

console.log(uuIDv4());

注意:(包括本答案以前版本中的片段),原因在此处 最佳解释。TL;DR:基于 Math.random() 的解决方案不提供良好的唯一性保证。

解决方法

我正在尝试在 JavaScript 中创建全局唯一标识符。我不确定所有浏览器上都有哪些例程,内置随机数生成器的“随机”和种子如何等等。

GUID / UUID 应至少为 32 个字符,并且应保持在 ASCII 范围内以避免在传递它们时出现问题。

大佬总结

以上是大佬教程为你收集整理的如何创建 GUID/UUID全部内容,希望文章能够帮你解决如何创建 GUID/UUID所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。