Computer >> Máy Tính >  >> Lập trình >> Javascript

Phương thức Decipher.final () trong Node.js

Decipher.final () được sử dụng để trả về một bộ đệm hoặc chuỗi chứa giá trị của đối tượng decipher. Nó là một trong những phương thức có sẵn được cung cấp bởi Class Cipher trong mô-đun tiền điện tử. Không thể sử dụng phương thức giải mã để giải mã dữ liệu khi phương thức decipher.final đã được gọi. Gọi phương thức cipher.final nhiều lần sẽ gây ra lỗi.

Cú pháp

decipher.final([outputEncoding])

Tham số

Các thông số trên được mô tả như bên dưới -

  • outputEncoding - Nó lấy mã hóa đầu ra làm tham số. Loại đầu vào cho tham số này là chuỗi. Các giá trị đầu vào có thể có là hex, base64, v.v.

Ví dụ

Tạo một tệp có tên - decipherFinal.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 decipherFinal.js

decipherFinal.js

// Example to demonstrate the use of cipher.final() method

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

// Initialising the AES algorithm
const algorithm = 'aes-192-cbc';
// Initialising the password used for generating key
const password = '12345678123456789';

// Retrieving key for the decipher object
const key = crypto.scryptSync(password, 'old data', 24);

// Initializing the static iv
const iv = Buffer.alloc(16, 0);

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

// Initializing the cipher object to get cipher
const encrypted1 =
'a05e87569f3f04234812ae997da5684944c32b8776fae676b4abe9074b31cd2a';
// const encrypted2 = '8d11772fce59f08e7558db5bf17b3112';

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

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

// Printing the result...
console.log("Decrypted value -- " + decryptedValue1);
// console.log("Base64 String:- " + base64Value)

Đầu ra

C:\home\node>> node decipherFinal.js
Decrypted value -- Welcome to tutorials point

Ví dụ

Hãy xem thêm một ví dụ.

// Example to demonstrate the use of cipher.final() method

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

// Initialising the AES algorithm
const algorithm = 'aes-192-cbc';
// Initialising the password used for generating key
const password = '12345678123456789';

// Retrieving key for the decipher object
const key = crypto.scryptSync(password, 'old data', 24);

// Initializing the static iv
const iv = Buffer.alloc(16, 0);

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

// Initializing the cipher object to get cipher
const encrypted =
'a05e87569f3f04234812ae997da5684944c32b8776fae676b4abe9074b31cd2a';
// const encrypted2 = '8d11772fce59f08e7558db5bf17b3112';

var buf = [];

// Updating the decopher data
let decrypted = decipher.update(encrypted, 'hex', 'utf8');

// Pushinf the data into buffer after decryption
buf.push(decrypted);
buf.push(decipher.final('utf8'));

// Printing the result
console.log(buf.join(' '));

Đầu ra

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