{{random-uuid}} 当前通过 {{Math/random}} 经过 {{rand-int}} 使用 {{Math/random}} 为 v4 UUID 生成随机数。此补丁旨在在使用时采用加密强随机数生成器(伪随机数生成器)。
使用的函数是
在大多数浏览器中使用 {{window.crypto.getRandomValues}}
在 IE11 中使用 {{window.msCrypto.getRandomValues}}
* 在不支持前者或 Node.js 上的加密模块不可用时,浏览器中使用 {{Math/random}}
当前未使用
* 在 Node.js 上的 {{crypto.randomBytes}}
Google Closure 似乎不提供功能检测或加密-API 的包装器,所以附加的补丁建议基于功能检测实现了一个垫片。
一个悬而未决的问题是节点.js {{crypto}} 模块如何可用,因为 ClojureScripts {{core.cljs}} 看起来似乎没有条件 {{require}} 节点.js 模块,也许应该保持这种方式。