【发布时间】:2016-01-03 10:47:10
【问题描述】:
如何在 Javascript 中生成 cryptographically secure 浮点数?
这应该是Math.random 的插件,范围为 (0, 1),但加密安全。示例用法
cryptoFloat.random();
0.8083966837153522
Secure random numbers in javascript? 展示了如何创建加密安全的 Uint32Array。也许这可以以某种方式转换为浮点数?
- The Mozilla Uint32Array documentation 并不完全清楚如何从 int 转换。
- Google 也不是重点。
-
Float32Array.from(someUintBuf);总是给出一个整数。
【问题讨论】:
-
是否只需要支持支持
window.crypto的浏览器? -
@T.J.Crowder:实际上,对于我的用例,Firefox 就足够了。越笼统越好。
-
只是在高层次上标记它:JavaScript 的浮点数是 64 位 IEEE-754 数字(好吧,如果你愿意,你可以得到一个 32 位的数字),这意味着它们只有53(有效)有效二进制数字。这对于几乎任何加密目的来说都是不够的。
-
@T.J.Crowder:警告绝对正确。然而,对于某些情况(统计分布)来说,这已经足够了。
标签: javascript random cryptography