如何从时间戳生成哈希?

Nip*_*ips 10 javascript

我必须生成唯一的哈希 - 可能来自时间戳.hash必须有最多8个字符.怎么做?

现在我只有时间戳:

var t = new Date().getTime();
Run Code Online (Sandbox Code Playgroud)

Vis*_*ioN 30

这可能看起来很有趣,但下面的代码可能会在接下来的几个世纪中运作良好 :)

(+new Date).toString(36);  // "iepii89m"
Run Code Online (Sandbox Code Playgroud)

之后你可以用切片方法扩展它:(+new Date).toString(36).slice(-8).

  • @DanielSokolowski为什么它有助于减少碰撞的可能性?我认为这恰恰相反. (4认同)
  • @Bardia这基本上是“Number(new Date).toString(36)”的快捷方式。请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus。 (3认同)
  • Date.now().toString(36) 我认为这更漂亮 (3认同)
  • 如果您希望最大限度地减少碰撞的可能性,您可以尝试以下操作:`((+new Date) + Math.random()* 100).toString(32)` (2认同)
  • 你能解释一下那个 + 是什么意思吗,很好奇 (2认同)
  • 很好的答案在这里!在很多情况下,您实际上并不需要 UUID,但需要基于时间进展的唯一字符串。 (2认同)