Node.js 中的 crypto.randomBytes() 方法
crypto.randomBytes() 会生成密码学上可靠的伪随机数据。在创建的字节中没有足够的熵之前,此方法不会完成。但在那之后,它也不会花费超过几毫秒的时间。此方法基本上会创建一些随机字节,然后进一步使用这些字节。
语法
crypto.randomBytes(size, [callback])
参数
以上参数的说明如下 −
size – 此参数定义要生成的字节数。大小不得大于 2**31 – 1。
callback – 如果该方法中出现任何错误,则会调用回调。
示例
创建一个名为 – randomBytes.js 的文件,并复制下面的代码片段。创建文件后,使用以下命令运行此代码,如下面的示例中所示 −
node randomBytes.js
randomBytes.js
// crypto.randomBytes() Asynchronous demo example // Importing the crypto module 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
ode>> node randomBytes.js 64 bytes of random data: eb2bcebb999407286caea729998e7fa0c089178f8ca43857e73ea3ff66dbe1852af24a4b0199be 9192798a3f8ad6d6475db3621cfacf38dcb0fba5d77d73aaf5
示例
我们再来看一个示例。
// crypto.randomBytes() Synchronous demo example // Importing the crypto module const crypto = require('crypto'); const buffer = crypto.randomBytes(256); console.log( `${buffer.length} bytes of random data: ${buffer.toString('base64')}`);
输出
C:\home
ode>> 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==
广告