Node.js 中的 crypto.randomBytes() 方法

的生成cyprtographically强的伪随机数据。在创建的字节中有足够的熵之前,此方法不会完成。但即使在此之后,它也不会超过几毫秒。这种方法基本上创建了一些进一步使用的随机字节。crypto.randomBytes()

语法

crypto.randomBytes(size, [callback])

参数

上述参数描述如下 -

  • size  – 此参数定义要生成的字节数。大小不得大于 2**31 – 1。

  • callback  – 如果方法中发生任何错误,则调用回调。

示例

创建一个具有名称的文件 -randomBytes.js并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 -

node randomBytes.js

随机字节.js

// crypto.randomBytes() 异步演示示例

// 导入加密模块
const crypto = require('crypto');

crypto.randomBytes(64, (err, buf) => {
   if (err) throw err;
   console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`);
});
输出结果
C:\home\node>> node randomBytes.js
64 bytes of random data:
eb2bcebb999407286caea729998e7fa0c089178f8ca43857e73ea3ff66dbe1852af24a4b0199be
9192798a3f8ad6d6475db3621cfacf38dcb0fba5d77d73aaf5

示例

让我们再看一个例子。

// crypto.randomBytes() 同步演示示例

// 导入加密模块
const crypto = require('crypto');

const buffer = crypto.randomBytes(256);
console.log(
   `${buffer.length} bytes of random data: ${buffer.toString('base64')}`);
输出结果
C:\home\node>> node randomBytes.js
256 bytes of random data:
n7yfRMo/ujHfBWSF2VFdevG4WRbBoG9Fqwu51+/9ZBUV6Qo88YG7IbcEaIer+g+OgjMv4RyNQ6/67a
F5xWmkOR3oA6J6bdAJ1pbstTuhIfItF1PQfP26YXk1QlaoKy/YJxPUngyK4kNG9O04aret4D+2qIq9
BUaQcv+R9Xi014VKNUDZ+YQKEaLHBhJMq6JgehJ56iNbdNJ4+PN7SQwjNdZ8gS76izAwYsSZ7Kuyx2
VzdXIKsLmjleuJ2DZ7/6Yyn8WM9463dhuh0KQ5nwFbgzucvjmdvDjBlGFZBGlKs6AXqYh+0Oe6Ckkv
3OpnXOJs+GExbmnvjaeDQ03khpdJfA==