📜  Node.js crypto.randomBytes() 方法

📅  最后修改于: 2022-05-13 01:56:32.683000             🧑  作者: Mango

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'));
});

输出:这里提供了回调函数,因此随机字节同步生成。

示例 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