Computer >> Máy Tính >  >> Lập trình >> Javascript

Phương thức crypto.randomFill () trong Node.js

Cả phương thức crypto.randomFill () và crypto.randomBytes () gần như giống nhau. Sự khác biệt duy nhất giữa hai phương thức là - Trong phương thức randomFill (), đối số đầu tiên là một vùng đệm sẽ được lấp đầy. Nó cũng có một phương thức gọi lại được gọi khi gặp lỗi chỉ khi lệnh gọi lại được định cấu hình.

Cú pháp

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

Tham số

Các thông số trên được mô tả như bên dưới -

  • đệm - Trường này chứa nội dung dữ liệu. Các loại bộ đệm có thể có là:string, TypedArray, Buffer, ArrayBuffer, DataView. Kích thước của bộ đệm không được lớn hơn 2 ** 31-1.

  • bù đắp - Giá trị của phần bù từ nơi randomFill sẽ bắt đầu. Giá trị mặc định là 0.

  • kích thước - Kích thước của bộ đệm sau khi bù đắp. tức là (bộ đệm. độ dài-bù đắp). Giá trị này không được lớn hơn 2 ** 31-1.

  • gọi lại - Hàm sẽ được gọi khi có lỗi.

Ví dụ

Tạo một tệp có tên - randomFill.js và sao chép đoạn mã bên dưới. Sau khi tạo tệp, sử dụng lệnh sau để chạy mã này như được hiển thị trong ví dụ bên dưới -

node randomFill.js

randomFill.js

// Node.js program to demonstrate the flow of crypto.randomFill() method

// Importing the crypto module
const crypto = require('crypto');
const fs = require("fs");

// Initialising the buffer bytes value
const buf = Buffer.alloc(6);

// Calling the randomFill method with buffer and a callback
crypto.randomFill(buf, (err, buf) => {
   if (err) throw err;
   // Printing the buffer data value after filling
   console.log(buf.toString('ascii'));
});

//Calling the randomFill with all the parameters defined above
crypto.randomFill(buf, 3, 2, (err, buf) => {
   if (err) throw err;
   // Printing the new random data in buffer
   console.log(buf.toString('base64'));
});

// We can see that the output will be same for below function
crypto.randomFill(buf, 3, 3, (err, buf) => {
   if (err) throw err;
   console.log(buf.toString('base64'));
});

Đầu ra

C:\home\node>> node randomFill.js
f!]"+–
ZqHdoit8
ZqHdoit8

Ví dụ

Hãy xem thêm một ví dụ.

// Node.js program to demonstrate the flow of crypto.randomFill() method

// Importing the crypto module
const crypto = require('crypto');
const fs = require("fs");

// Initialising the buffer bytes value using data view
const data = new DataView(new ArrayBuffer(16));

// Calling the randomFill method with buffer and a callback
crypto.randomFill(data, (err, buf) => {
   if (err) throw err;
   // Printing the randomFill data with encoding
   console.log(Buffer.from(buf.buffer,
      buf.byteOffset, buf.byteLength).toString('ascii'));
});

Đầu ra

C:\home\node>> node randomFill.js
>h(Be#D8h0