首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在javascript中保护随机数?

在javascript中保护随机数?
EN

Stack Overflow用户
提问于 2010-11-03 08:11:44
回答 6查看 54.9K关注 0票数 84

如何在javascript中生成加密安全的随机数?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-11-03 08:23:12

例如,您可以使用鼠标移动作为随机数的种子,每当onmousemove事件发生时读取时间和鼠标位置,将该数据提供给美白函数,您将获得手头的一些第一类随机数。不过,在使用数据之前,请确保用户已经充分移动了鼠标。

编辑:我自己也做了一个密码生成器,我不能保证我的美白功能是完美的,但不断地重新播种,我非常确定它足以胜任这项工作:Edit.Hopto.org/generator.htm

Edit2:它现在可以在智能手机上使用,但只能在熵收集时禁用触摸功能。Android在其他任何方式下都不能正常工作。

票数 24
EN

Stack Overflow用户

发布于 2011-05-31 07:36:57

在WHATWG上有关于将其添加到window.crypto对象的讨论。您可以阅读the discussion并查看proposed API和webkit bug (22049)。

刚刚测试了以下代码in Chrome,以获得一个随机字节:

代码语言:javascript
复制
(function(){
  var buf = new Uint8Array(1);
  window.crypto.getRandomValues(buf);
  alert(buf[0]);
})();

票数 61
EN

Stack Overflow用户

发布于 2015-12-07 01:31:29

使用window.crypto.getRandomValues,如下所示:

代码语言:javascript
复制
var random_num = new Uint8Array(2048 / 8); // 2048 = number length in bits
window.crypto.getRandomValues(random_num);

这是supported in all modern browsers,并使用操作系统的随机生成器(例如/dev/urandom)。如果您需要IE11兼容性,则必须通过var crypto = window.crypto || window.msCrypto; crypto.getRandomValues(..)使用它们的前缀实现。

请注意,window.crypto应用编程接口也可以generate keys outright,这可能是更好的选择。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4083204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档