17 lines
465 B
JavaScript
17 lines
465 B
JavaScript
/* global crypto */
|
|
|
|
export function generateRandomUint32 () {
|
|
if (typeof crypto !== 'undefined' && crypto.getRandomValue != null) {
|
|
// browser
|
|
let arr = new Uint32Array(1)
|
|
crypto.getRandomValues(arr)
|
|
return arr[0]
|
|
} else if (typeof crypto !== 'undefined' && crypto.randomBytes != null) {
|
|
// node
|
|
let buf = crypto.randomBytes(4)
|
|
return new Uint32Array(buf.buffer)[0]
|
|
} else {
|
|
return Math.ceil(Math.random() * 0xFFFFFFFF)
|
|
}
|
|
}
|