分享您的想法,请点击2024 Clojure 状态调查!

欢迎!请查看关于页面以了解更多有关如何使用此工具的信息。

0
ClojureScript

{{random-uuid}} 当前使用 {{Math/random}} 通过 {{rand-int}} 生成随机数用于 v4 UUIDs。此补丁旨在使用可选的加密强PRNG(伪随机数生成器)。

使用的函数包括
大多数浏览器中的 {{window.crypto.getRandomValues}}

和 IE11中的 {{window.msCrypto.getRandomValues}}

目前在浏览器不支持前者或者 Node.js 上的加密模块不可用时使用 {{Math/random}}
目前未使用

和 Node.js上的 {{crypto.randomBytes}}

Google Closure 似乎没有提供功能检测或加密-APIs的包装器,因此附件的补丁建议实现一个基于功能检测的填充(shim)。

17 答案

0

评论由:mfikes

如果将 0008-CLJS-2386-fix-ie.patch 应用于 master,我会在 Safari 中得到以下内容

cljs.user=> (random-uuid) 执行错误(错误)在 (<cljs repl>:1)。只能在 Crypto 的实例上调用 Crypto.getRandomValues

0
...