Node.js 中的 Decipher.final() 方法

node.jsjavascriptweb developmentfront end technology

decipher.final() 用于返回包含 decipher 对象值的缓冲区或字符串。它是 crypto 模块中的 Cipher 类提供的内置方法之一。一旦调用了 decipher.final 方法,decipher 方法就不能用于解密数据。多次调用 cipher.final 方法将引发错误。

语法

decipher.final([outputEncoding])

参数

上述参数描述如下 −

  • outputEncoding – 它将输出编码作为参数。此参数的输入类型为字符串。可能的输入值为 hex、base64 等。

示例

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

node decipherFinal.js

decipherFinal.js

// 示例演示如何使用 cipher.final() 方法

// 导入 crypto 模块
const crypto = require('crypto');

// 初始化 AES 算法
const algorithm = 'aes-192-cbc';
// 初始化用于生成密钥的密码
const password = '12345678123456789';

// 检索解密对象的密钥
const key = crypto.scryptSync(password, 'old data', 24);

// 初始化静态 iv
const iv = Buffer.alloc(16, 0);

const decipher = crypto.createDecipheriv(algorithm, key, iv);

// 初始化密码对象以获取密码
const enabled1 =
'a05e87569f3f04234812ae997da5684944c32b8776fae676b4abe9074b31cd2a';
// const crypto2 = '8d11772fce59f08e7558db5bf17b3112';

let decryptedValue1 = decipher.update(encrypted1, 'hex', 'utf8');

let decryptedValue1 = decipher.update(encrypted1, 'hex', 'utf8');

decryptedValue1 += decipher.final('utf8');

// 打印结果...
console.log("解密值 -- " + decryptedValue1);
// console.log("Base64 String:- " + base64Value)

输出

C:\home
ode>> node decipherFinal.js 解密值 - Welcome to tutorials point

示例

我们再看一个例子。

// 示例演示 cipher.final() 方法的使用

// 导入加密模块
const crypto = require('crypto');

// 初始化 AES 算法
const algorithm = 'aes-192-cbc';

// 初始化用于生成密钥的密码
const password = '12345678123456789';

// 检索解密对象的密钥
const key = crypto.scryptSync(password, 'old data', 24);

// 初始化静态 iv
const iv = Buffer.alloc(16, 0);

const decipher = crypto.createDecipheriv(algorithm, key, iv);

// 初始化密码对象以获取密码
const enabled =
'a05e87569f3f04234812ae997da5684944c32b8776fae676b4abe9074b31cd2a';
// const enabled2 = '8d11772fce59f08e7558db5bf17b3112';

var buf = [];

// 更新解密数据
let decrypted = decipher.update(encrypted, 'hex', 'utf8');

// 解密后将数据推送到缓冲区
buf.push(decrypted);
buf.push(decipher.final('utf8'));

// 打印结果
console.log(buf.join(' '));

输出

C:\home
ode>> node decipherFinal.js Welcome to tutor ials point

相关文章