{{random-uuid}} 当前是通过 {{Math/random}} 并通过 {{rand-int}} 生成随机数用于 v4 UUID。此补丁目标是如果可用,则使用密码学上安全的 PRNG (伪随机数生成器)。
使用的函数是
IE11 中的 {{window.msCrypto.getRandomValues}}
* 在不支持前者的浏览器或节点.js 上未提供加密模块的情况下,使用 {{Math/random}}
目前未使用
* 在节点.js 上使用 {{crypto.randomBytes}}
Google Closure 似乎没有提供对加密 API 的功能检测或包装,所以附加的补丁建议基于功能检测实现了一个修正。
一个悬而未决的问题是节点.js 的 {{crypto}} 模块如何提供,因为 ClojureScripts 的 {{core.cljs}} 似乎没有条件 {{require}} 节点.js 模块,也许应该保持这种方式。