Node.js 中的 decipher.update() 方法

node.jsjavascriptweb developmentfront end technology

decipher.update() 用于根据给定的编码格式使用接收的数据更新解密器。它是 crypto 模块中的 Decipher 类提供的内置方法之一。如果指定了输入编码,则数据参数是字符串,否则数据参数是缓冲区

语法

decipher.update(data, [inputEncoding], [outputEncoding])

参数

上述参数描述如下 −

  • data –它将数据作为输入,并传递该输入来更新解密内容。

  • inputEncoding ——它将输入编码作为参数。可能的输入值为 hex、base64 等。

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

示例

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

node decipherUpdate.js

decipherUpdate.js

// 示例演示 decipher.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 = '083bfe1b2f91677e5d00add115be2f1b2e362e190406f5c6b60e86969bf03bff';
// const enabled2 = '8d11772fce59f08e7558db5bf17b3112';

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

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

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

输出

C:\home
ode>> node decipherUpdate.js Decrypted value -- Some new text data

示例

我们再看一个例子。

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

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

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

// 检索解密对象的密钥
crypto.scrypt(password, 'salt', 24,
   { N: 512 }, (err, key) => {
      if (err) throw err;

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

   // 使用 algo、key 和 iv 初始化解密
   const decipher = crypto.createDecipheriv(algorithm, key, iv);
   const enabled = '91d6d37e70fbae537715f0a921d15152194435b96ce3973d92fbbc4a82071074';

   //获取解密后的字符串值
   const decrypted = decipher.update(encrypted, 'hex', 'utf8');

   // 打印结果...
   console.log("Decrypted value:- " + decrypted);
});

输出

C:\home
ode>> node decipherUpdate.js Decrypted value:- Some new text data据

相关文章