Search code examples
javascriptnode.jstypescriptcryptojs

Decrypt the crypto data


I am trying to encrypt and decrypt values using node inbuild module crypto. I have followed this tutorial to encrypt the data. They haven't to gave any sample code to decrypt. When I try to use other tutorial code to decrypt the data. It not working out. Please help me out,

Code

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

Solution

  • Since you havent provided the code for decryption, Cant help you what is actually wrong you doing, apart from that you can do this to get decrypted code:

    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)