2015-01-21 2 views
2

Каков наилучший способ генерации 32-битного случайного числа без знака в узле? Вот что я пробовал:Генерировать случайное 32-разрядное число в узле

var max32 = Math.pow(2, 32) - 1 
var session = Math.floor(Math.random() * max32); 

Мне нужно это для уникального идентификатора.

+1

Самый большой 16 бит номер 65535, так что если вы получаете 100000 у вас есть какие-то реальные проблемы. – Pointy

+0

@Pointy неправильно расшифровал его. – fvrghl

ответ

4

Вы можете использовать crypto.randomBytes() как:

var crypto = require('crypto'); 
function randU32Sync() { 
    return crypto.randomBytes(4).readUInt32BE(0, true); 
} 
// or 
function randU32(cb) { 
    return crypto.randomBytes(4, function(err, buf) { 
    if (err) return cb(err); 
    cb(null, buf.readUInt32BE(0, true)); 
    } 
} 
Смежные вопросы