當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。