当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js crypto.randomFill()用法及代码示例


crypto.randomFill()方法与crypto.randomBytes()方法相同,但唯一的区别在于此处的第一个参数是buffer它将被填充,并且还具有作为参数传递的回调函数。但是,如果没有回调函数,则会引发错误。

用法:

crypto.randomFill( buffer, offset, size, callback )

参数:此方法接受上述和以下所述的四个参数:



  • buffer:此参数保存Buffer,TypedArray或DataView类型的数据。
  • offset:它是一个数字,默认值为0。
  • size:这是一个数字,其默认值为(buffer.length-offset)。
  • callback:该函数具有两个参数,即err和buf。

返回值:它返回缓冲区。

以下示例说明了Node.js中crypto.randomFill()方法的使用:

范例1:

// Node.js program to demonstrate the  
// crypto.randomFill() method 
  
// Including crypto module 
const crypto = require('crypto'); 
  
// Defining buffer 
const buf = Buffer.alloc(6); 
  
// Calling randomFill method with two 
// of its parameters 
crypto.randomFill(buf, (err, buf) => { 
  
  if (err) throw err; 
  
  // Prints random data in buffer 
  console.log(buf.toString('ascii')); 
}); 
  
// Calling randomFill method with all 
// its parameters 
crypto.randomFill(buf, 3, 2, (err, buf) => { 
  
  if (err) throw err; 
  
  // Prints random data in buffer 
  console.log(buf.toString('base64')); 
}); 
  
// The output of this is same as above 
crypto.randomFill(buf, 3, 3, (err, buf) => { 
  
  if (err) throw err; 
    
  console.log(buf.toString('base64')); 
});

输出:

&43Jho0s5v0
Jho0s5v0

在此,最后两个值相同。

范例2:

// Node.js program to demonstrate the  
// crypto.randomFill() method 
  
// Including crypto module 
const crypto = require('crypto'); 
  
// Defining dataview 
const datv = new DataView(new ArrayBuffer(6)); 
  
// Calling randomFill method with DataView 
// instance as buffer 
crypto.randomFill(datv, (err, buf) => { 
  
  if (err) throw err; 
  
  // Prints random data which is encoded 
  console.log(Buffer.from(buf.buffer,  
         buf.byteOffset, buf.byteLength) 
    .toString('ascii')); 
});

输出:

ceVMb

在这里,任何TypedArray或DataView实例都作为缓冲区传递,并且在每次运行中您将获得不同的输出。

参考: https://nodejs.org/api/crypto.html#crypto_crypto_randomfill_buffer_offset_size_callback




相关用法


注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Node.js | crypto.randomFill() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。