Chrome 修复 JS 引擎随机数没那么随机的问题

简介:

在过去几年里,许多人研究都发现Chrome浏览器的V8 JavaScript引擎在用Math.random()函数的时候返回的随机数没有那么随机。今天这个问题已经解决了,即在最新版的Chrome 49中——很快这个版本就会发布。Math.random()是在JavaScript中达成随机性的最常用的方式,这对许多web应用而言是比较重要的组成部分。先前的研究显示,其实在V8引擎中没那么随机。

screenshot

为了修复这个BUG,谷歌采用新的随机数生成器名为xorshift128+,它修复了先前MWC1616算法没那么随机的问题。

xorshift128+的随机数是真正随机的,而且在性能方面也有很大的提升,但不具备加密的安全性,所以不应该用来做GUID或者其他安全哈希。

谷歌自己对于这个问题的修复也是挺高兴的,而且还鼓励人们能多提交这样的问题。

目录
相关文章
|
6月前
|
Web App开发 JavaScript
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
770 0
|
4天前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
51 9
|
5月前
|
Web App开发 前端开发 JavaScript
Chrome 浏览器中执行 JavaScript
Chrome 浏览器中执行 JavaScript
335 0
|
20天前
|
JavaScript 前端开发 Java
JS引擎V8
【10月更文挑战第9天】
23 0
|
3月前
|
Web App开发 JavaScript 前端开发
什么是JavaScript引擎
【8月更文挑战第14天】什么是JavaScript引擎
65 1
|
3月前
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
74 0
|
5月前
|
XML 缓存 JavaScript
一篇文章讲明白JS模板引擎之JST模板
一篇文章讲明白JS模板引擎之JST模板
48 2
|
5月前
|
JavaScript 前端开发 安全
JavaScript中获取随机数的方法
JavaScript中获取随机数的方法
79 1
|
6月前
|
JavaScript 前端开发 NoSQL
【MongoDB 专栏】MongoDB 的 JavaScript 引擎与脚本执行
【5月更文挑战第11天】MongoDB 的 JavaScript 引擎允许在服务器端直接执行脚本,提升效率并实现定制化操作。脚本环境提供独立但与数据库关联的运行空间,引擎负责脚本的解析、编译和执行。执行过程包括脚本提交、解析、编译和执行四个步骤。掌握脚本逻辑设计和 JavaScript 语言特性对于高效利用这一功能至关重要。例如,通过脚本可以计算商品总销售额,增强数据库操作的灵活性。
100 1
【MongoDB 专栏】MongoDB 的 JavaScript 引擎与脚本执行
|
4月前
|
JavaScript
js 生成随机数(含随机颜色)
js 生成随机数(含随机颜色)
31 0