{{random-uuid}}当前使用{{Math/random}}通过{{rand-int}}生成用于v4 UUIDs的随机数。此补丁的目标是如果可用,改用加密强伪随机数生成器(PRNG)。
使用的函数是
{{window.crypto.getRandomValues}}在大多数浏览器中
{{window.msCrypto.getRandomValues}}在IE11中
* {{Math/random}}在不支持前者或Node.js上未提供加密模块的浏览器中
目前未使用
* {{crypto.randomBytes}}在Node.js上
Google Closure似乎不提供对crypto-APIs的功能检测或包装,因此附加的补丁建议基于功能检测实现了一个模拟器。
一个悬而未决的问题是Node.js的角度如何使crypto模块可用,因为ClojureScripts的角度似乎没有条件{{require}}Node.js模块,也许它应该保持这种状态。