当前,{{random-uuid}} 使用 {{Math/random}} 中的 {{rand-int}} 通过生成随机数字为 v4 UUID。此补丁旨在使用可用的加密强伪随机数生成器(pseudo random number generator)。
使用的函数包括
IE11 中的 {{window.msCrypto.getRandomValues}}
* 不支持前者或如果 crypto 模块未在 Node.js 中提供,则使用 {{Math/random}}
目前未使用
* Node.js 的 {{crypto.randomBytes}}
Google Closure 似乎未提供功能检测或 crypto-API 的包装,因此附加的补丁建议基于功能检测实现了一个模拟器。
一个未解决的问题是如何使 Node.js 的 {{crypto}} 模块可用,因为 ClojureScripts 的 {{core.cljs}} 似乎没有条件 {{require}} Node.js 模块,也许应该保持这种方式。