Node.js 中的 crypto.randomFillSync() 方法


crypto.randomFillSync() 方法采用一个缓冲区参数,并通过将其加密值填充到其中来返回一个缓冲区。顾名思义,这是一个同步流程。

语法

crypto.randomFillSync(buffer, [offset], [size])

参数

以上参数的描述如下 −

  • buffer – 此字段包含数据内容。可能的缓冲区类型有:字符串、TypedArray、Buffer、ArrayBuffer、DataView。缓冲区的大小不能大于 2**31-1。

  • offset – randomFill 将开始填充的偏移量值。默认值是 0。

  • size – 偏移量之后的缓冲区大小,即 (buffer.length-offset)。此值不能大于 2**31-1。

示例

创建一个名为 randomFillSync.js 的文件,并复制以下代码片段。在创建文件后,使用以下命令运行此代码,如下例所示 −

node randomFillSync.js

randomFillSync.js

// crypto.randomFillSync() Example Demo

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

// Defining buffer length
const buffer = Buffer.alloc(15);

// Buffer
console.log(crypto.randomFillSync(buffer).toString('base64'));

// Buffer and Offset
crypto.randomFillSync(buffer, 4);
console.log(buffer.toString('base64'));

// Buffer, offset and size
crypto.randomFillSync(buffer, 4, 4);
console.log(buffer.toString('base64'));

输出

C:\home
ode>> node randomFillSync.js wVBZ+i/nvmL3Ce4kBOl0 wVBZ+hkP5DB/4Ci8yTGs wVBZ+stVWJZ/4Ci8yTGs

示例

我们再看一个示例。

// crypto.randomFillSync() Example Demo

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

// Creating TypedArray instance i.e, Int8Array
const data = new Int8Array(16);

// Buffer, offset and size
console.log(Buffer.from(crypto.randomFillSync(data).buffer, data.byteOffset, data.byteLength).toString('base64'));

console.log();

// Creating a TypedArray instance i.e, BigInt64Array
const data2 = new BigInt64Array(4);
console.log(Buffer.from(crypto.randomFillSync(data2).buffer, data2.byteOffset, data2.byteLength).toString('ascii'));

console.log();

// Creating a DataView instance
const data3 = new DataView(new ArrayBuffer(7));
console.log(Buffer.from(crypto.randomFillSync(data3).buffer, data3.byteOffset, data3.byteLength).toString('hex'));

输出

C:\home
ode>> node randomFillSync.js iNm8tiwDATcV6I8xjTSTbQ== ra+I=(6&Xse"�hjw?!EO?D#S7M d957fb1dbdfa00

更新时间:20-May-2021

358 浏览量

开启您的职业生涯

通过完成本课程获取认证

开始
广告