Node.js crypto.randomBytes() 方法
crypto.randomBytes() 方法用于生成加密良好的人工随机数据和编写代码中要生成的字节数。
句法:
crypto.randomBytes( size, callback )
参数:此方法接受上面提到的两个参数,如下所述:
- size:它是number类型,表示要生成的字节数。
- 回调:它是一个由两个参数组成的函数,即err 和 buf 。但是,如果在所述代码中提供了回调函数,则字节将异步生成,否则这些字节将同步生成。
返回类型:如果给定回调函数,则返回一个 Buffer。
下面的示例说明了在 Node.js 中使用crypto.randomBytes() 方法:
示例 1:
// Node.js program to demonstrate the
// crypto.randomBytes() method
// Including crypto module
const crypto = require('crypto');
// Calling randomBytes method with callback
crypto.randomBytes(127, (err, buf) => {
if (err) {
// Prints error
console.log(err);
return;
}
// Prints random bytes of generated data
console.log("The random data is: "
+ buf.toString('hex'));
});
输出:这里提供了回调函数,因此随机字节同步生成。
The random data is: 074e48c8e3c0bc19f9e22dd7570037392e5d0bf80cf9dd51bb7808872a511b3
c1cd91053fca873a4cb7b2549ec1010a9a1a4c2a6aceead9d115eb9d60a1630e056f3accb10574cd563
371296d4e4e898941231d06d8dd5de35690c4ba94ca12729aa316365145f8a00c410a859c40a46bbb4d
5d51995241eec8f6b7a90415e
示例 2:
// Node.js program to demonstrate the
// crypto.randomBytes() method
// Including crypto module
const crypto = require('crypto');
// Calling randomBytes method without callback
const buf = crypto.randomBytes(60);
// Prints random bytes of generated data
console.log("The random bytes of data generated is: "
+ buf.toString('utf8'));
输出:这里没有提供回调函数,所以字节是同步生成的
The random bytes of data generated is: _??i???Z?Z?o?i?W??bEC
?F????#?-??T??jDqmm?v??7?Q?c_G?%?
参考: https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback