可以在Javascript中生成加密强大的UUID吗?

时间:2014-01-19 03:59:26

标签: javascript google-chrome guid uuid

今天的网络浏览器(Chrome,IE,Safari和Firefox)的状态是什么以及它们创建加密强大的UUID的能力?在研究这个问题时,我一直无法找到任何确定的东西。我在stackoverflow和其他地方遇到过有关Math.random问题的信息,但我想知道这一切的当前状态是什么。

更新

正如 icktoofay 所指出的,crypto.getRandomValues是实现此目的的方法。不幸的是,浏览器的支持是有限的。有没有一种行之有效的解决方法?是否有任何javascript库可以解决这个问题?

3 个答案:

答案 0 :(得分:5)

在拥有它的浏览器中,您可以使用crypto.getRandomValues来获取加密安全的伪随机值。例如:

var array = new Uint8Array(16);
crypto.getRandomValues(array);

然后,您可以将这些字节操作为有效的UUID。

答案 1 :(得分:1)

虽然这并不直接回答原始问题,但它可能有助于寻找图书馆的人帮助创建UUID。根据我目前的需求,我决定使用node-uuid库。从功能列表中:

  • 生成RFC4122版本1或版本4 UUID
  • 支持平台上的密码强随机#生成

通过使用crypto.getRandomValues来查看源代码,这是@icktoofay所建议的。

答案 2 :(得分:0)

简短回答,不! 答案很长,http://www.matasano.com/articles/javascript-cryptography/

相信我,我研究了这个问题一段时间了。加密是实验性的,因此对于大多数浏览器来说,它是一个没有。然而,节点可能更好,因为它直接绑定到操作系统。你需要研究它!