小编Luc*_*oli的帖子

Javascript:使用crypto.getRandomValues在一个范围内生成一个随机数

我知道你可以使用这个函数在一个范围内的JavaScript中生成一个随机数:

function getRandomInt (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
Run Code Online (Sandbox Code Playgroud)

感谢IonuţG.Stan 在这里.

我想知道的是你是否可以使用crypto.getRandomValues()而不是Math.random()在一个范围内生成一个更好的随机数.我希望能够生成0到10之间的数字,或0到1,甚至10 - 5000(含).

你会注意到Math.random()产生一个如下数字:0.8565239671015732.

getRandomValues API可能会返回以下内容:

  • 231Uint8Array(1)
  • 54328Uint16Array(1)
  • 355282741Uint32Array(1).

那么如何将其转换回十进制数,以便我可以使用上面相同的范围算法?或者我需要一个新的算法?

这是我尝试的代码,但它不能很好地工作.

function getRandomInt(min, max) {       
    // Create byte array and fill with 1 random number
    var byteArray = new Uint8Array(1);
    window.crypto.getRandomValues(byteArray);

    // Convert to decimal
    var randomNum = '0.' + byteArray[0].toString();

    // Get number in range …
Run Code Online (Sandbox Code Playgroud)

javascript random cryptography range

12
推荐指数
5
解决办法
1万
查看次数

如何将光标样式更改为悬停在图表点上的指针?

我正在使用 chart.js v.2。库,当用户将鼠标悬停在图表点上时,我试图将光标样式更改为“指针”。(我将把它用于条形图、饼图、折线图)。似乎 charts.js v.2 中应该支持此选项。但我在任何地方都找不到例子。

编辑:我没有提到我使用的是带有反应的图表,更具体地说,我正在使用这个反应包装器

我正在导入例如图表线 import { Line } from 'react-chartjs-2';

class ChartTimelineChart extends Component {



constructor(props){
    super(props);

    this.options = {
       responsive: true,
       maintainAspectRatio: false,
       animation: {
            easing:  'easeOutCirc',
            duration: 1000
      },
      pointStyle : 'circle',
            scales: {
                 xAxes: [{
                     display: true,
                     gridLines: {display: false},
                     scaleLabel: {display: true}
                }],
                yAxes: [{
                    display: true,
                    gridLines: {display: false},
                    ticks: {beginAtZero:true},
                    scaleLabel: {display: true}
               }]
           },
      tooltips: {
        displayColors: false
      },
      legend: false
    };


   searchChart(elem, props, data) {
    //Something... …
Run Code Online (Sandbox Code Playgroud)

javascript chart.js

4
推荐指数
1
解决办法
6224
查看次数

如何获得[0,1]范围内的加密强数?

我一直在尝试创建一个函数,它将通过函数返回0(包括)和1(不包括)之间的随机十进制数Window.crypto.getRandomValues().目前,我的代码如下:

var rand = function(){
    var ra = window.crypto.getRandomValues(new Uint32Array(1))[0];
    function dec(n,m){
        return (n>=0&&n<=1)?n:dec(n/m,m);
    }
    return dec(ra,8);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是这不是均匀分布的; 它倾向于在.2和.7之间,很少在.2和.7之间.有没有更好的方法来使用该.getRandomValues()方法来获得类似Math.random()函数的数字?

我没有使用该.random()方法,因为我希望为我正在尝试执行的操作设置安全数字.

javascript random cryptography

3
推荐指数
1
解决办法
626
查看次数

标签 统计

javascript ×3

cryptography ×2

random ×2

chart.js ×1

range ×1