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