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