解密加密数据

Decrypt the crypto data

我正在尝试使用节点内置模块加密来加密和解密值。我按照这个 tutorial 来加密数据。他们没有给出任何示例代码来解密。当我尝试使用其他教程代码来解密数据时。它不工作。请帮帮我,

代码

const crypto = require('crypto');
  
// Difining algorithm
const algorithm = 'aes-256-cbc';
  
// Defining key
const key = crypto.randomBytes(32);
  
// Defining iv
const iv = crypto.randomBytes(16);
  
// An encrypt function
function encrypt(text) {
  
 // Creating Cipheriv with its parameter
 let cipher = crypto.createCipheriv(
      'aes-256-cbc', Buffer.from(key), iv);
  
 // Updating text
 let encrypted = cipher.update(text);
  
 // Using concatenation
 encrypted = Buffer.concat([encrypted, cipher.final()]);
  
 // Returning iv and encrypted data
 return encrypted.toString('hex');
}


var op = encrypt("Hi Hello"); //c9103b8439f8f1412e7c98cef5fa09a1

由于您没有提供解密代码,所以无法帮助您了解您到底做错了什么,除此之外您可以这样做来获得解密代码:

const crypto = require('crypto')

// Defining key
const key = crypto.randomBytes(32)

// Defining iv
const iv = crypto.randomBytes(16)

// An encrypt function
function encrypt(text) {
  // Creating Cipheriv with its parameter
  const cipher = crypto.createCipheriv('aes-256-cbc', Buffer.from(key), iv)

  // Updating text
  let encrypted = cipher.update(text)

  // Using concatenation
  encrypted = Buffer.concat([encrypted, cipher.final()])

  // Returning iv and encrypted data
  return encrypted.toString('hex')
}

var op = encrypt('Hi Hello')
console.log(op)

function decrypt(data) {
  // Creating Decipheriv with its parameter
  const decipher = crypto.createDecipheriv('aes-256-cbc', Buffer.from(key), iv)
  // Updating text
  const decryptedText = decipher.update(data, 'hex', 'utf8')
  const finalText = decryptedText + decipher.final('utf8')
  return finalText
}

var decrptedData = decrypt(op)
console.log(decrptedData)