In this article, you’ll learn how to use the Node.js crypto module to perform cryptographic operations on data. I'll show you how to encrypt data with a secret key and then decrypt it using the same secret key when required.
You can also check video on YouTube.
https://www.youtube.com/watch?v=9PL7EK4jXLM
Create a new project
Create a new directory in your local file system and switch to it by typing the following
mkdir encr_decr && cd encr_decr npm init -y
Now install the crypto module
npm install crypto --save
Now make app.js.
Add following code to app.js
var Crypto = require('crypto'); var secret_key = 'fd85b494-aaaa'; var secret_iv = 'smslt'; var encryptionMethod = 'AES-256-CBC'; var key = Crypto.createHash('sha512').update(secret_key, 'utf-8').digest('hex').substr(0, 32); var iv = Crypto.createHash('sha512').update(secret_iv, 'utf-8').digest('hex').substr(0, 16); var encryptedMessage = encrypt_string("hello", encryptionMethod, key, iv); console.log(encryptedMessage); // output : L2dOZjlDVmxoSDNWdmpVMkNGd0JEdz09 var decrptMessage = decrypt_string(encryptedMessage, encryptionMethod, key , iv); console.log(decrptMessage); //output : hello function encrypt_string(plain_text, encryptionMethod, secret, iv) { var encryptor = Crypto.createCipheriv(encryptionMethod, secret, iv); var aes_encrypted = encryptor.update(plain_text, 'utf8', 'base64') + encryptor.final('base64'); return Buffer.from(aes_encrypted).toString('base64'); }; function decrypt_string(encryptedMessage, encryptionMethod, secret, iv) { const buff = Buffer.from(encryptedMessage, 'base64'); encryptedMessage = buff.toString('utf-8'); var decryptor = Crypto.createDecipheriv(encryptionMethod, secret, iv); return decryptor.update(encryptedMessage, 'base64', 'utf8') + decryptor.final('utf8'); };
Conclusion
In this article, we looked at how to perform cryptographic operations on a text by using Node.js built-in crypto module.
Top comments (0)