El método crypto.randomFill() es el mismo que el método crypto.randomBytes() pero la única diferencia es que aquí el primer argumento es buffer
que se completará y también tiene una función de devolución de llamada pasada como argumento. Sin embargo, si una función de devolución de llamada no está disponible, se genera el error.
Sintaxis:
crypto.randomFill( buffer, offset, size, callback )
Parámetros: Este método acepta cuatro parámetros como se mencionó anteriormente y se describe a continuación:
- buffer: este parámetro contiene el tipo de datos Buffer, TypedArray o DataView.
- offset: Es un número cuyo valor por defecto es 0.
- tamaño: Es un número cuyo valor por defecto es (buffer.length – offset) .
- devolución de llamada: es una función con dos parámetros, a saber, err y buf.
Valor devuelto: Devuelve el búfer.
Los siguientes ejemplos ilustran el uso del método crypto.randomFill() en Node.js:
Ejemplo 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')); });
Producción:
&43Jho0s5v0 Jho0s5v0
Aquí, los dos últimos valores son iguales.
Ejemplo 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')); });
Producción:
ceVMb
Aquí, cualquier instancia de TypedArray o DataView se pasa como búfer y en cada ejecución obtendrá un resultado diferente.
Referencia: https://nodejs.org/api/crypto.html#crypto_crypto_randomfill_buffer_offset_size_callback
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA