首页 > 解决方案 > 如何将 ArrayBuffer 的特定范围设置为随机数?

问题描述

我想将16 字节的前29ArrayBuffer位设置为 range 中的随机值,[0, 2^28 - 1]与系统字节序无关。

以下是我的尝试,但这(可能)设置了所有32 位。我能做些什么?有没有办法做类似的事情randomNumberHere & 0x1FFFFFFF

let buffer = new ArrayBuffer(16);
let view = new Uint32Array(buffer.slice(0, 4));
window.crypto.getRandomValues(view);

标签: javascriptrandomarraybuffer

解决方案


您可以在 ArrayBuffer 上使用按位操作数

buffer & 0xE0000000 ^ window.crypto.getRandomValues(view) & 0x1FFFFFFF

推荐阅读