生成唯一ID的最佳方法客户端(使用Javascript)

Tom*_*man 16 javascript jquery

我需要在浏览器中生成唯一的ID.目前,我正在使用这个:

Math.floor(Math.random() * 10000000000000001)
Run Code Online (Sandbox Code Playgroud)

我想使用当前的UNIX时间((new Date).getTime()),但我很担心,如果两个客户端产生的IDS 确切的同时,他们也不会是唯一的.

我可以使用当前的UNIX时间(我想因为那种方式会存储更多信息)吗?如果没有,最好的方法是什么(可能是UNIX时间+ 2个随机数字?)

Rus*_*ell 16

您可以使用以下链接创建GUID:

http://softwareas.com/guid0-a-javascript-guid-generator

在JavaScript中创建GUID/UUID?

这将最大化你"独特性"的机会.

或者,如果它是安全页面,您可以将日期/时间与用户名连接起来,以防止同时生成多个值.

  • 我会选择最后一个建议,用DATE/TIME与用户名连接. (2认同)

bro*_*ofa 9

https://github.com/broofa/node-uuid根据时间戳或随机#提供符合RFC的UUID.单个文件没有依赖关系,支持时间戳或随机的基于#UU的UUID,如果可用的话,使用本机API获取加密质量的随机数,以及其他好东西.


小智 6

在现代浏览器中,您可以使用crypto

var array = new Uint32Array(1);
window.crypto.getRandomValues(array);
console.log(array);
Run Code Online (Sandbox Code Playgroud)

  • 太好了,因为这使用了系统熵,这比您可以进入浏览器要高得多。 (2认同)