2015-01-21 53 views
2

在節點中生成32位隨機無符號數的最佳方法是什麼?這是我試過的:在節點中生成隨機32位數

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

我需要這個唯一的ID。

+1

最大的16位號碼爲65535,所以如果你要10萬,你已經獲得了一些實際問題。 – Pointy 2015-01-21 06:42:05

+0

@Pointy轉錄它錯了。 – fvrghl 2015-01-21 06:46:39

回答

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)); 
    } 
}