Tag: 随机

这是一个密码安全的方法来生成一个随机数在节点JS?

这是我用我自己的Cryptography.random()replaceMath.random()的尝试。 我的代码是否会生成一个密码安全的随机数,您是否看到有优化的机会? NodeCrypto = require('crypto'); Cryptography = function() { } Cryptography.random = Promise.method(function() { return new Promise(function(resolve, reject) { NodeCrypto.randomBytes(4, function(ex, buffer) { var hex = buffer.toString('hex'); var integer = parseInt(hex, 16); var random = Number('0.'+integer); resolve(random); return random; }); }); });

crypto#randomBytes是如何随机的?

crypto.randomBytes(20).toString('hex') ? 容易,所有我需要知道。

用node.js生成10的幂模数的密码随机数

使用encryption库,我可以要求库给我一些随机字节。 问题是这个字节是从0到255每个(包含)的数字,因此创build一个均匀分布的结果并不那么简单。 我的意思是以下几点: 函数接收到的数字N为10,100,… 10 ^ b,其中b是1到8之间的数字(可以更大,但是我不需要更大的数字),并返回0和给定的数字(不包括给定的数字),所以说,如果N是100,则函数的结果是从0到99,如果N是10,则结果是从0到9。 您可以使用Math.random创build一个随机数,然后乘以N,然后使用floor。 但是,Math.random不是密码安全的,所以必须使用随机生成的2 ^ 8m的数字来完成,其中m只是给予crypto.randomBytes的任意数量的字节。 我创build了一个显然正在工作的简单函数。 不过,我知道把随机数的一些偏差引入是相当容易的,我只希望对它进行validation,因为这对项目来说有些重要。 genera_aleatorio_residuo_potencia10 : function (n, cb) { var digitos = Math.log(n) / Math.LN10; var extra_base2 = digitos > 8 ? digitos – 8 : 0; if (Math.floor(digitos + .4) – digitos > 0.00000001) { return cb("Numero no es potencia de 10 (10, 100, […]

如何让Node.js使用非伪随机数生成器

鉴于此 : 除非你有一个硬件的随机数发生器 ,否则这些字节将是从一个种子值可预测的伪随机生成的。 种子是从特定于操作系统的源(在类Unix系统上的/dev/urandom ,在Windows上的CryptGenRandom )生成的。 想知道如何在Node.js中使用硬件随机数生成器

在JavaScript环境中的安全ID

我想用JavaScript生成一个安全的随机string。 关于JavaScript的安全性没有太多的东西,因为它通常用在客户端 – 在这种情况下,我在服务器端使用Node.js。 我可以创build一个for循环,每次在string中添加一个随机字符 – 但是有没有任何库,函数或其他任何可以使用npm安装的,使用类似SSL安全性的代码,encryption或类似的东西? 另外,请回答各种选项 – 这将是最有用的。 Stackoverflow似乎认为有另一个类似于这个的答案 。 但我不同意。 这个问题问: 有没有更优雅的方式? – 到现有的一段代码。 我的问题比较宽泛,对于JavaScript中没有任何随机string生成知识的人可能会有所帮助。 而且,这个问题可以吸引更广泛的答案,给出许多不同的方法,可以比较。

Node.js Math.random()不起作用

我写了这段代码来使用Monte Carlo模拟来估计Pi,但是我注意到无论迭代的数量如何,结果总是在2.0附近。 我想这可能是Math.random()不起作用。 代码使用Node v7.5.0在Mac OS Sierra上运行。 有任何想法吗? // Begin of code iterations = 100000000; in_circle = 0; function find_pi(){ for ( i = 0; i < iterations; i++ ){ x = 1 – 2 * Math.random(); y = 1 – 2 * Math.random(); if ( (x^2 + y^2) < 1 ) in_circle++; } console.log( […]

find免费的端口不用于应用程序 – find一些algorithm

我在我的程序中使用以下API来设置自由端口并将其提供给应用程序运行 portscanner.findAPortNotInUse(3000, 65000, '127.0.0.1', function(error, port) { console.log('AVAILABLE PORT AT: ' + port) }) https://github.com/baalexander/node-portscanner 这个自由端口被给予应用程序使用和工作正常。 问题是,如果我给application A提供一个自由端口,并且应用程序还没有占用它(有时需要一些时间…),并且有其他application B请求一个空闲端口,所以它给APP B应用程序的端口A导致问题…是否有任何优雅的方式来解决它? 我的应用程序没有状态,所以它不能保存到哪个应用程序获取哪个端口… 有解决scheme,我们可以随机的范围,但这是不健壮的… 在我的应用程序中获取我应该提供免费的端口运行的应用程序的URL。 更新 我不能使用一些经纪人或别的什么东西可以控制这个外面我需要find一些algorithm (也许有一些聪明的随机),可以帮助我在内部做,即我的程序是像单身人士,我需要一些技巧,如何给端口50000 to 65000 ,这将减less提供给应用程序的端口的冲突量 更新2 我决定尝试下面这样的事情,你觉得怎么样? 使用lodash https://lodash.com/docs/4.17.2#random来确定提供3(或更多,如果有意义的话)数字的循环之间的端口,如下面的范围 portscanner.findAPortNotInUse([50001, 60000, 600010], '127.0.0.1', function(err, port) { if(err) { console.log("error!!!-> " +err); }else { console.log('Port Not in Use ' + port); } […]

什么使string/令牌密码安全?

如果您需要生成一个string/令牌来validation将来的请求(例如API密钥,电子邮件确认URL等),应考虑哪些因素? 尤其是 是什么让string“安全”/“很难猜到”? 如何测量/估计“安全量”? 那里的主要标准是什么? 一个实际的例子 我们从NodeJS中获取这两个输出string。 string1 (通过节点密码 ) var crypto = require('crypto'); crypto.randomBytes(48, function (ex, buf) { console.log(buf.toString('hex')); }); string2 (通过节点UUID ) var uuid = require('node-uuid'); console.log(uuid.v4()); 基于上述概念,哪一个更安全,为什么? 另外,请随时提出有关这个主题的任何好的介绍材料,因为我不容易find关于这个在线的文章。

Node.js – 如何使用crypto.randomBytes在特定范围内生成随机数字

如何使用crypto.randomBytes在特定范围内生成随机数字? 我想能够生成一个像这样的随机数字: console.log(random(55, 956)); // where 55 is minimum and 956 is maximum 而且我仅限于在随机函数内部使用crypto.randomBytes来为此范围生成随机数。 我知道如何将生成的字节从randomBytes转换为hex或十进制,但我不知道如何从math上随机字节的特定范围内获得一个随机数。