今天的网络浏览器(Chrome,IE,Safari和Firefox)的状态是什么以及它们创建加密强大的UUID的能力?在研究这个问题时,我一直无法找到任何确定的东西。我在stackoverflow和其他地方遇到过有关Math.random问题的信息,但我想知道这一切的当前状态是什么。
更新
正如 icktoofay 所指出的,crypto.getRandomValues
是实现此目的的方法。不幸的是,浏览器的支持是有限的。有没有一种行之有效的解决方法?是否有任何javascript库可以解决这个问题?
答案 0 :(得分:5)
在拥有它的浏览器中,您可以使用crypto.getRandomValues
来获取加密安全的伪随机值。例如:
var array = new Uint8Array(16);
crypto.getRandomValues(array);
然后,您可以将这些字节操作为有效的UUID。
答案 1 :(得分:1)
虽然这并不直接回答原始问题,但它可能有助于寻找图书馆的人帮助创建UUID。根据我目前的需求,我决定使用node-uuid库。从功能列表中:
通过使用crypto.getRandomValues来查看源代码,这是@icktoofay所建议的。
答案 2 :(得分:0)
简短回答,不! 答案很长,http://www.matasano.com/articles/javascript-cryptography/
相信我,我研究了这个问题一段时间了。加密是实验性的,因此对于大多数浏览器来说,它是一个没有。然而,节点可能更好,因为它直接绑定到操作系统。你需要研究它!